虽然我不觉得这太复杂,但我正在努力寻找类似的问题/答案。你知道吗
我有两个数组。你知道吗
索引数组:[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,并且在可能的情况下尽量避免迭代,以保持代码的整洁性和可读性。你知道吗
你可以用下面的乘法
你可以做:
输出
参见numpy中的indexing。你知道吗
这对你有用吗?你知道吗
相关问题 更多 >
编程相关推荐