import numpy as np a = np.floor(10*np.random.random((3, 4))) # np.random.random生成[0,1)之间的浮点数,np.floor得到不大于输入元素的最大整数 print(a) print(a.shape) a.ravel() # ravel将多维数组转化为一维数组,np.ravel()赋值时会改变原始数组,np.flatten()赋值时不会改变原始数组,两a改变数组的形状者都不会 a.reshape(6,2) # 临时改变a的形状,不改变a的原始形状 print(a.T) # 获得a的转置矩阵 print(a.T.shape) print(a.shape) # reshape 函数返回具有修改形状的参数,不改变原始的形状,而 ndarray.resize 方法修改数组本身 print(a) a.resize((2, 6)) print(a) # 如果在reshape操作中将维度指定为-1,则会自动计算其他维度 a.reshape(3, -1) # 第一轴的维度为3,如果第二个参数是-1.则第二轴的维度根据元素个数自动计算 # 不同数组叠加在一起 a = np.floor(10*np.random.random((2, 2))) b = np.floor(10*np.random.random((2, 2))) np.vstack((a, b)) # 沿着第一轴堆叠起来 np.hstack((a, b)) # 沿着第二轴堆叠起来 # 函数 column_stack 将1D数组作为列叠加到2D数组中。它相当于仅用于二维数组的 hstack from numpy import newaxis np.column_stack((a, b)) # 2维的相当于np,hstack() a = np.array([4., 2.]) b = np.array([3., 8.]) np.column_stack((a, b)) # a的值作为新数组的第一列,b的值作为新数组的第二列 np.hstack((a, b)) # 而hstack()返回的是一行数组 a[:, newaxis] # 增加一个新的维度,此时为a.shape = (2,1) np.column_stack((a[:, newaxis], b[:, newaxis])) np.hstack((a[:, newaxis], b[:, newaxis])) # 现在column_stack和hstack一样了