numpy从现有数组创建新的2D数组,列值作为索引

时间:2016-03-22 08:29:17

标签: python arrays numpy matrix

所以我有一个numpy数组形状(4950,3)。从这个数组,我需要创建新的数组(矩阵),其值和索引来自现有数组。

具体来说,

  

Array1 = array([[0.,1.,0.4284256],   [0,2,0.38090856]   [1.,2.,0.32901526]])。

new Array2 [0,1] = 0.4284256 , Array2[0,2]=0.38090856 and Array2[1,2]= 0.32901526 

现在我用循环,但我认为必须有一个有效的方法。 A1 and A2 values

for i in range(A1.shape[0]):
    A2[ A1[i,0], A1[i,1] ] = A1[i,2]

1 个答案:

答案 0 :(得分:0)

这是你在找什么?您可以使用另一个数组中的Integer值直接索引一个数组的值。

import numpy as np
Array1 = np.array([ [ 0.,1.,0.4284256 ], [0.,2.,0.38090856], [1., 2.,0.32901526] ] )
Array2 = np.zeros(Array1.shape)
Array2[np.int_(Array1[:,0]),np.int_(Array1[:,1])] = Array1[:,2]
print(Array2)

,结果是:

[[ 0.          0.4284256   0.38090856]
 [ 0.          0.          0.32901526]
 [ 0.          0.          0.        ]]