numpy.ndarray.shape 表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 ndim 属性(秩)。
numpy.ndarray.flat 将数组转换为一维的迭代器,可以用for访问数组每一个元素。numpy.ndarray.flatten([order=‘C’]) 将数组的副本转换为一维数组,并返回。注意两者的区别,返回的性质不同!
y = np.ravel(x)
ravel() 返回的是视图。
reshape() 函数当参数newshape = [rows,-1] 时,将根据行数自动确定列数,当参数newshape = -1 时,表示将数组降为一维。
数组转置
numpy.transpose(a, axes=None) Permute the dimensions of an array.
numpy.ndarray.T
y = x.T
y = np.transpose(x)
numpy.newaxis = None None 的别名,对索引数组很有用。
y = x[np.newaxis, :]
print(y.shape) # (1, 8)
print(y) # [[1 2 9 4 5 6 7 8]]
y = x[:, np.newaxis]
print(y.shape) # (8, 1)
print(y)
[[1]
[2]
[9]
[4]
[5]
[6]
[7]
[8]]
利用squeeze() 函数将表示向量的数组转换为秩为1的数组,这样利用 matplotlib 库函数画图时,就可以正常的显示结果了。
数组组合
numpy.concatenate((a1, a2, …), axis=0, out=None)
连接沿现有轴的数组序列(原来x,y都是一维的,拼接后的结果也是一维的)。原来x,y都是二维的,拼接后的结果也是二维的。numpy.stack(arrays, axis=0, out=None)沿着新的轴加入一系列数组(stack为增加维度的拼接)。hstack(),vstack() 分别表示水平和竖直的拼接方式。在数据维度等于1时,比较特殊。而当维度大于或等于2时,它们的作用相当于concatenate ,用于在已有轴上进行操作。
数组拆分
numpy.split(ary, indices_or_sections, axis=0)
y = np.split(x, [1, 3])
numpy.vsplit(ary, indices_or_sections)垂直切分是把数组按照高度切分
numpy.hsplit(ary, indices_or_sections)水平切分是把数组按照宽度切分。
数组平铺
numpy.tile(A, reps)将原矩阵横向、纵向地复制。
numpy.repeat(a, repeats, axis=None) Repeat elements of an array.
a. axis=0 ,沿着y轴复制,实际上增加了行数。
b. axis=1 ,沿着x轴复制,实际上增加了列数。
c. repeats ,可以为一个数,也可以为一个矩阵。
d. axis=None 时就会flatten当前矩阵,实际上就是变成了一个行向量。
查找数组的唯一元素:
numpy.unique(ar, return_index=False, return_inverse=False,return_counts=False, axis=None)