gpt4 book ai didi

python - Numpy 数组索引问题

转载 作者:行者123 更新时间:2023-12-01 05:38:57 25 4
gpt4 key购买 nike

我在理解 Numpy 数组中的索引时遇到了一个小问题。我认为一个简化的例子最好能了解我正在尝试做什么。所以首先我创建一个我想要填充的大小的零数组:

x = range(0,10,2)
y = range(0,10,2)
a = zeros(len(x),len(y))

这样会给我一个 5X5 的零数组。现在,我想用一个相当复杂的函数填充数组,但我无法使用网格。我的问题是我想迭代为:

for i in xrange(0,10,2):
for j in xrange(0,10,2):
.........
"do function and fill the array corresponding to (i,j)"

但是,现在我希望 a[2,10] 是 2 和 10 的函数,但 2 和 10 函数的索引将是 a[1,4] 或其他。

再说一次,也许这是基本的,我已经阅读了文档,发现自己不知所措。

编辑:最后,我尽可能地矢量化并编写了我在 Cython 中无法实现的模拟循环。此外,我使用 Joblib 来并行化操作。我将结果存储在列表中,因为并行运行时数组未正确填充。然后,我使用 Itertools 将列表拆分为单独的结果,并使用 Pandas 来组织结果。谢谢大家的帮助

最佳答案

一些帮助您完成工作并保持良好绩效的提示:

- avoid Python `for` loops
- create a function that can deal with vectorized inputs

示例:

def f(xs, ys)
return x**2 + y**2 + x*y

您可以将 xsys 作为数组传递,并且操作将按元素完成:

xs = np.random.random((100,200))
ys = np.random.random((100,200))

f(xs,ys)

您应该阅读有关 numpy broadcasting 的更多信息更好地了解数组的操作如何工作。这将帮助您设计一个可以正确处理数组的函数。

关于python - Numpy 数组索引问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18136756/

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