0

假设我有一个 numpy 数组 x:

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

我想在不明确编写for循环的情况下执行以下操作,即说一种使用自动内置循环的方法;

1) 将第二列替换为全为 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)最后,我想根据条件替换原始数组中的第二列,即

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

即数组现在看起来像:

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

有什么建议么 ?谢谢 !

4

1 回答 1

6

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

  1. x[:,1]= 1
  2. x[:,2] *= x[:,1]
  3. x[:,1] = np.where( x[:,0] > 5, 0, 4 )
于 2012-07-23T00:33:54.547 回答