Skip to content

Numpy中花式索引和shape用法

总结一下最近学习中容易出现问题的地方️

代码

python
from numpy import *

randMat = random.randint(0, 10, (4, 3))
print("原矩阵:\n", randMat)
# 索引从0开始计数
print("输出第一行的所有数据:\n", randMat[0, :])
print("输出第二列的所有数据:\n", randMat[:, 1])
print("输出矩阵第1和第3行的所有数据:\n", randMat[[0, 2], :])
print("行数:\n",randMat.shape[0])
print("列数:\n",randMat.shape[1])
print("维数:\n",randMat.shape)

运行结果

python
原矩阵:
 [[3 5 1]
 [1 3 0]
 [0 2 1]
 [0 2 9]]
输出第一行的所有数据:
 [3 5 1]
输出第二列的所有数据:
 [5 3 2 2]
输出矩阵第1和第3行的所有数据:
 [[3 5 1]
 [0 2 1]]
行数:
 4
列数:
 3
维数:
 (4, 3)

TIP

2018年8月22日 21:40:54更新,新增:使用shape和reshape调整数组大小

代码

python
import numpy as np
a = np.array([[1,2,3],[4,5,6]]) 
a.shape = (3,2)
b = a.reshape(2,3)
print(a)
print(b)

运行结果

python
[[1 2]
 [3 4]
 [5 6]]
[[1 2 3]
 [4 5 6]]