所以我有一个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]
答案 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. ]]