Python:对numpy数组的高效操作



假设我有一个numpy数组x:

x = array([[  3,   2,   1],
           [  3,  25,  34],
           [ 33, 333,   3],
           [ 43,  32,   2]])

我想在不显式编写for循环的情况下执行以下操作,即使用自动内建循环的方法;

1) 将第2列替换为所有1列,即

x = array([[  3,   1,   1],
           [  3,   1,  34],
           [ 33,   1,   3],
           [ 43,   1,   2]])

2) 在原始阵列中,将第3列替换为第2列和第3列的乘积,即

x = array([[  3,   2,   1*2],
           [  3,  25,  34*25],
           [ 33, 333,   3*333],
           [ 43,  32,   2*32]])

3) 最后,我想根据条件(即)替换原始阵列中的第2列

x[1] = 0  if x[0] > 5 else 4 

即阵列现在看起来像:

x = array([[  3,   4,   1],
           [  3,   4,  34],
           [ 33,   0,   3],
           [ 43,   0,   2]])

有什么建议吗?谢谢

关于numpy的文档非常值得一读,因为这是相当基本的东西。。。

  1. x[:,1]=1
  2. x[:,2] *= x[:,1]
  3. x[:,1] = np.where( x[:,0] > 5, 0, 4 )

最新更新