0%

2020-07-26-numpy函数解析

newaxis用法

newaxis表示增加一个新的坐标轴

  • x[:, np.newaxis] ,放在后面,会给列上增加维度
  • x[np.newaxis, :] ,放在前面,会给行上增加维度

用途: 通常用它将一维的数据转换成一个矩阵,与代码后面的权重矩阵进行相乘。

第一个程序

1
2
3
import numpy as np
a = np.array([1,2,3])
print (a.shape,'\n',a)

结果为:

1
2
(3,)
[1 2 3]

第二个程序

1
2
a = np.array([1,2,3])[:,np.newaxis]
print (a.shape,'\n',a)

结果为:

1
2
3
4
(3, 1)
[[1]
[2]
[3]]

和第一个程序相比,a的shape为(3,)现在为(3,1)变为二维数组了,之前为[1,2,3],现在变为

[[1] [2] [3]]

第三个程序

1
2
a = np.array([1,2,3])[np.newaxis,:]
print (a.shape,'\n',a)

输出结果为:

1
2
(1, 3)
[[1 2 3]]

输出结果为:

1
2
(1, 3)
[[1 2 3]]

总结

np.newaxis的作用就是在原来的数组上增加一个维度。[np.newaxis,:]这个地方np.newaxis放的位置有关,第二个程序放在[:,]的后面,相当于在原来的后面增加一个维度,所以变为(3,1),而第三个则放在前面,则为(1,3)。加到哪一维,那一维就为1

concatenate用法

-用于进行数组拼接

函数定义:

numpy.concatenate((a1, a2, ...), axis=0, out=None)

  • axis=0: 合并行
  • axis=1: 合并列

例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
>>> a=np.array([[1,2,3],[4,5,6]])
>>> b=np.array([[11,21,31],[7,8,9]])
# 合并行
>>> np.concatenate((a,b,c),axis=0) # 默认情况下,axis=0可以不写
array([[ 1, 2, 3],
[ 4, 5, 6],
[11, 21, 31],
[ 7, 8, 9]])
# 合并列
>>> np.concatenate((a,b),axis=1)
array([[ 1, 2, 3, 11, 21, 31],
[ 4, 5, 6, 7, 8, 9]])
-------------本文结束感谢阅读-------------
卑微博主,在线求赏