gpt4 book ai didi

python - 是否可以在 NumPy 中在没有循环的情况下逐行索引另一个二维数组?

转载 作者:行者123 更新时间:2023-12-04 14:43:39 27 4
gpt4 key购买 nike

假设我有带有索引的 NumPy 数组:

array([[1, 3],
[2, 5]])

另外,我有带零的 NumPy 数组:

array([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])

我需要从具有索引的数组中取出第一行,并将数组第一行中的这些索引设置为 1,并用零。在第一行之后必须看起来像 [0, 1, 0, 1, 0, 0].

然后我还需要对数组中的第二行使用零,并分别使用数组中的第二行和索引。在这第二行之后必须看起来像 [0, 0, 1, 0, 0, 1]

所以,我想得到这样的数组:

array([[0, 1, 0, 1, 0, 0],
[0, 0, 1, 0, 0, 1]])

如何在没有任何循环的情况下做到这一点?

最佳答案

给定索引数组i和目标数组x

>>> i = np.array([[1, 3],
[2, 5]])

>>> x = np.array([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])

您可以使用 np.put_along_axis :

numpy.put_along_axis(arr, indices, values, axis)
Put values into the destination array by matching 1d index and data slices.

>>> np.put_along_axis(x, i, values=1, axis=1)

>>> x
array([[0., 1., 0., 1., 0., 0.],
[0., 0., 1., 0., 0., 1.]])

关于python - 是否可以在 NumPy 中在没有循环的情况下逐行索引另一个二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68942251/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com