gpt4 book ai didi

python - 在 NumPy 中操作数组元素

转载 作者:行者123 更新时间:2023-11-28 17:40:10 27 4
gpt4 key购买 nike

我有一个给定的数组 'a' 如下:

import numpy as np

a = np.arange(-100.0, 110.0, 20.0, dtype=float) #increase 20
a = np.tile(a, 4)
a = a.reshape(4,11)

[[-100. -80. -60. -40. -20. 0. 20. 40. 60. 80. 100.]
[-100. -80. -60. -40. -20. 0. 20. 40. 60. 80. 100.]
[-100. -80. -60. -40. -20. 0. 20. 40. 60. 80. 100.]
[-100. -80. -60. -40. -20. 0. 20. 40. 60. 80. 100.]]

从数组“a”,我需要创建如下所示的新数组“b”:

[[ 100.   80.   60.   40.   20.    0.  -20.  -40.  -60.  -80. -100.]
[ 100. 80. 60. 40. 20. 0. -20. -40. -60. -80. -100.]
[ 100. 80. 60. 40. 20. 0. -20. -40. -60. -80. -100.]
[ 100. 80. 60. 40. 20. 0. -20. -40. -60. -80. -100.]]

实际上,数组 'b' 是:

b =  np.arange(100.0, -110.0, -20.0, dtype=float)
b = np.tile(b, 4)
b = b.reshape(4,11)

然而,在我的实际问题中,实际数据并不固定,只有 a 的索引即 a[0,0] 是固定的。因此,我必须通过使用索引 reshape /重新排列其元素,从数组“a”生成数组“b”。

我试过如下,但无法想象如何得到正确答案:

b = np.flipud(a)
print b

[[-100. -80. -60. -40. -20. 0. 20. 40. 60. 80. 100.]
[-100. -80. -60. -40. -20. 0. 20. 40. 60. 80. 100.]
[-100. -80. -60. -40. -20. 0. 20. 40. 60. 80. 100.]
[-100. -80. -60. -40. -20. 0. 20. 40. 60. 80. 100.]]

b = np.rot90(a,1)
print b

[[ 100. 100. 100. 100.]
[ 80. 80. 80. 80.]
[ 60. 60. 60. 60.]
[ 40. 40. 40. 40.]
[ 20. 20. 20. 20.]
[ 0. 0. 0. 0.]
[ -20. -20. -20. -20.]
[ -40. -40. -40. -40.]
[ -60. -60. -60. -60.]
[ -80. -80. -80. -80.]
[-100. -100. -100. -100.]]

哪些 numpy 函数适用于这个问题?

最佳答案

你可以使用 np.fliplr :

b = np.fliplr(a)
print b

[[ 100. 80. 60. 40. 20. 0. -20. -40. -60. -80. -100.]
[ 100. 80. 60. 40. 20. 0. -20. -40. -60. -80. -100.]
[ 100. 80. 60. 40. 20. 0. -20. -40. -60. -80. -100.]
[ 100. 80. 60. 40. 20. 0. -20. -40. -60. -80. -100.]]

此函数在左/右方向翻转数组。

文档还建议了以下等效的切片操作:

a[:,::-1]

关于python - 在 NumPy 中操作数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25526433/

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