gpt4 book ai didi

python - 使用 Numpy 替换任意轴中的值

转载 作者:行者123 更新时间:2023-11-28 21:39:40 26 4
gpt4 key购买 nike

如果我事先不知道轴,我该如何替换数组值?

例如,如果我想做类似的事情

arr[:,5]

但我事先并不知道轴并想让它通用我可以使用take:

arr.take(5, axis=1)

它会起作用。

但是,如果我想要类似的东西

arr[:,5]=10

但是我事先不知道轴,我该怎么做呢?我显然不能执行 arr.take(5, axis=1) = 10,而且我找不到执行此操作的函数。

最接近的(我发现的)函数是 np.put() ,但我不认为可以用它来完成。

最佳答案

您可以将所需的轴交换到第一个位置,然后进行分配。 swapaxes 返回一个 View ,因此赋值将执行您想要的操作。

例如,

In [87]: np.random.seed(123)

In [88]: a = np.random.randint(1, 9, size=(5, 8))

In [89]: a
Out[89]:
array([[7, 6, 7, 3, 5, 3, 7, 2],
[4, 3, 4, 2, 7, 2, 1, 2],
[7, 8, 2, 1, 7, 1, 8, 2],
[4, 7, 6, 5, 1, 1, 5, 2],
[8, 4, 3, 5, 8, 3, 5, 8]])

In [90]: ax = 1

In [91]: k = 5

In [92]: val = 99

In [93]: a.swapaxes(0, ax)[k] = val

In [94]: a
Out[94]:
array([[ 7, 6, 7, 3, 5, 99, 7, 2],
[ 4, 3, 4, 2, 7, 99, 1, 2],
[ 7, 8, 2, 1, 7, 99, 8, 2],
[ 4, 7, 6, 5, 1, 99, 5, 2],
[ 8, 4, 3, 5, 8, 99, 5, 8]])

In [95]: ax = 0

In [96]: k = 2

In [97]: val = -1

In [98]: a.swapaxes(0, ax)[k] = val

In [99]: a
Out[99]:
array([[ 7, 6, 7, 3, 5, 99, 7, 2],
[ 4, 3, 4, 2, 7, 99, 1, 2],
[-1, -1, -1, -1, -1, -1, -1, -1],
[ 4, 7, 6, 5, 1, 99, 5, 2],
[ 8, 4, 3, 5, 8, 99, 5, 8]])

关于python - 使用 Numpy 替换任意轴中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46478892/

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