【发布时间】:2019-10-04 17:08:14
【问题描述】:
虽然我不觉得这过于复杂,但我正在努力寻找类似的问题/答案。
我有两个数组。
indices_array:[0, 1, 1, 0, 0, 1, 0]
值数组:[1, 2, 3, 4, 5, 6, 7]
我想使用第一个数组作为赋值索引和第二个数组作为值来创建一个新数组。这应该会产生一个新数组,每个索引有两个值,但是,一个值为零,另一个是我的第二个数组中的值。
使用我上面的示例数组,结果应该是:
[[1, 0],
[0, 2],
[0, 3],
[4, 0],
[5, 0],
[0, 6],
[7, 0]]
我可以使用以下命令轻松创建所需数组的空版本:np.zeros((total_len, values_per_index))
我的直觉在尝试类似以下内容时失败:target_array[indices_array] = value_array
我相信我理解为什么我尝试的方法会失败,但是如何真正实现这一点却让我难以理解。有没有一种简单的方法可以做到这一点?到目前为止,Python 并不是我最好的语言,而且一些 numpy 技巧有时在本质上似乎过于神奇了..
编辑:我知道 for 循环可以实现这一点,但我真的希望更好地理解 numpy,并在可能的情况下尽可能避免迭代,以实现代码的简洁性和可读性。
【问题讨论】:
标签: python arrays numpy multidimensional-array