a = np.array([[1,2],[3,4]])#对所有元素求均值print(np.mean(a))print(np.mean(a, axis=0))#对每一列求均值print(np.mean(a, axis=1))#对每一行求均值
2.5
[ 2. 3.]
[ 1.5 3.5]
4.numpy.std()计算矩阵或数组的标准差
a = np.array([[1,2],[3,4]])#对所有元素求标准差 print(np.std(a))print(np.std(a, axis=0))#对每一列求标准差print(np.std(a, axis=1))#对每一行求标准差
1.11803398875
[ 1. 1.]
[ 0.5 0.5]
5.numpy.newaxis为数组增加一个维度
a = np.array([[1,2,3],[4,5,6],[7,8,9]])# 先输入3行2列的数组a
b = a[:,:2]print(b)print(b.shape)# 当数组的行与列都大于1时,不需增加维度
c = a[:,2]print(c)print(c.shape)# 可以看到,当数组只有一列时,缺少列的维度
d = a[:,2,np.newaxis]# np.newaxis实现增加列的维度print(d)print(d.shape)# d的维度成了3行1列(3,1)
e = a[:,2,None]# None与np.newaxis实现相同的功能print(e)print(e.shape)
n = np.array(np.random.randn(4,2))print(n)
l = np.array([[1,2,3,4],[2,1,3,5]])print(l)print(l.shape)# 可以看到,n是二维的,l是一维的,如果直接调用np.hstack()会出错:维度不同。# n = np.hstack((n,l)) # ValueError: all the input arrays must have same number of dimensions#解决方法是将l变为二维# n = np.hstack((n,l[:,np.newaxis])) # 注意:在使用np.hstack()时必须用()把变量括起来,因为它只接受一个变量print(l[:,np.newaxis])print(l[:,np.newaxis].shape)# print(n)
n = np.array([[1,2,3,4,5,6],[11,22,33,44,55,66],[111,222,333,444,555,666]])# 产生一个三行六列容易区分的数组print(n)
sample =[[]for i inrange(3)]# 产生三行一列的空列表print(sample)for i inrange(0,6,2):# 每间隔一列便添加到sample中
sample = np.hstack((sample,n[:,i,np.newaxis]))print(n[:,i])print(n[:,i,np.newaxis])print(sample)