Python:用1D数组中的值替换索引填充的2D numpy数组
我有一个nxmnumpython数组。该数组的值范围在0到10之间,与1D numpy数组的索引一致(1D数组的长度=11,因此为0-10)。此1D数组存储一个原始值。现在我想用1D数组中相应的值替换2D数组的索引值 我该怎么做 干杯Python:用1D数组中的值替换索引填充的2D numpy数组,python,arrays,numpy,Python,Arrays,Numpy,我有一个nxmnumpython数组。该数组的值范围在0到10之间,与1D numpy数组的索引一致(1D数组的长度=11,因此为0-10)。此1D数组存储一个原始值。现在我想用1D数组中相应的值替换2D数组的索引值 我该怎么做 干杯 诺克森使用numpy很简单:result=values\u 1d[arr\u idxs\u 2d] 见: 欢迎来到SO。这不是一个讨论论坛或教程。请花时间阅读和阅读该页上的其他链接迭代二维数组并用另一个数组中的值替换每个项目的值?或者使用二维数组作为一维数组的索引
诺克森使用numpy很简单:
result=values\u 1d[arr\u idxs\u 2d]
见:
欢迎来到SO。这不是一个讨论论坛或教程。请花时间阅读和阅读该页上的其他链接迭代二维数组并用另一个数组中的值替换每个项目的值?或者使用二维数组作为一维数组的索引。嗨,这完全解决了我的问题!谢谢你的作品。
>>> import numpy as np
>>> imin, imax = 0, 9
>>> values_1d = np.random.randn(imax+1)
>>> values_1d
array([-0.80355548, 1.00645905, -1.17436992, -1.52008027, 0.73544379,
-0.72175806, -0.69933584, -0.50195895, -0.04588092, 0.86542796])
>>> arr_idxs_2d = np.random.randint(imin, imax, (4, 5))
>>> arr_idxs_2d
array([[6, 7, 4, 3, 1],
[8, 8, 3, 7, 7],
[1, 1, 5, 3, 2],
[6, 2, 3, 6, 8]])
>>> values_1d[arr_idxs_2d]
array([[-0.69933584, -0.50195895, 0.73544379, -1.52008027, 1.00645905],
[-0.04588092, -0.04588092, -1.52008027, -0.50195895, -0.50195895],
[ 1.00645905, 1.00645905, -0.72175806, -1.52008027, -1.17436992],
[-0.69933584, -1.17436992, -1.52008027, -0.69933584, -0.04588092]])