Numpy学习汇总

1. 广播机制

  当操作两个Numpy array时,Numpy会逐个dimension比较它们的shape,在下述情况下,两个array会兼容和输出broadcasting结果:

  • 相等
  • 对其中维度为1的进行拷贝拓展,直至shape匹配。(注意只能对维度1的进行拷贝扩展,倍数关系无法进行扩充)
  • 当两个ndarray的维度不完全相同的时候,rank较小的那个ndarray会被自动在前面加上一个一维维度,直到与另一个ndarray rank相同再检查是否匹配

比如求和的时候有:

Image (3d array):  256 x 256 x 3
Scale (1d array):              3
Result (3d array): 256 x 256 x 3

A      (4d array):  8 x 1 x 6 x 1
B      (3d array):      7 x 1 x 5
Result (4d array):  8 x 7 x 6 x 5

A      (2d array):  5 x 4
B      (1d array):      1
Result (2d array):  5 x 4

A      (2d array):  15 x 3 x 5
B      (1d array):  15 x 1 x 5
Result (2d array):  15 x 3 x 5

2. axis

  numpy的运算中axis=0和axis=1往往让人不知所措。那我们如何更好的记忆呢?axis=0是朝垂直的方向运动计算,axis=1是朝水平的方向运动计算。如axis=0,可以想象成垂直方向上压缩或者拉伸。

发布了178 篇原创文章 · 获赞 389 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/herosunly/article/details/104791861
今日推荐