Python:对numpy数组的高效操作

时间:2012-07-23 00:11:32

标签: python numpy

说我有一个numpy数组x:

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

我想执行以下操作而不显式编写for循环,即说一个在内置循环中使用自动的方法;

1)用所有1的列替换第2列,即

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)最后,我想根据条件

替换原始数组中的第二列
x[1] = 0  if x[0] > 5 else 4 

即。数组现在看起来像:

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

有什么建议吗? 谢谢!

1 个答案:

答案 0 :(得分:6)

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

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