通过两个索引集更改Numpy数组值

np8igboo  于 2022-12-18  发布在  其他
关注(0)|答案(1)|浏览(117)

我正在努力实现以下目标:

# Before
    raw = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

    # Set values to 10
    indice_set1 = np.array([0, 2, 4])
    indice_set2 = np.array([0, 1])
    raw[indice_set1][indice_set2] = 10

    # Result
    print(raw)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

但原始值保持完全相同。
预期结果:

# After
    raw = np.array([10, 1, 10, 3, 4, 5, 6, 7, 8, 9])
mbyulnm0

mbyulnm01#

在执行raw[indice_set1]之后,您会得到一个new数组,这是您使用第二个切片修改的数组,而不是raw
而是对切片机进行切片:

raw[indice_set1[indice_set2]] = 10

修改后的raw

array([10,  1, 10,  3,  4,  5,  6,  7,  8,  9])

相关问题