【发布时间】:2015-01-23 04:58:47
【问题描述】:
我正在尝试在 Python 中有效地索引二维数组,但问题是它真的很慢。
这是我尝试过的(简化示例):
xSize = veryBigNumber
ySize = veryBigNumber
a = np.ones((xSize,ySize))
N = veryBigNumber
const = 1
for t in range(N):
for i in range(xSize):
for j in range(ySize):
a[i,j] *= f(i,j)*const # f(i,j) is an arbitrary function of i and j.
现在我想用更有效的方法替换嵌套循环。我该怎么做?
【问题讨论】:
-
你需要告诉我们更多关于你想要做什么的信息 - 应该能够避免为一个简单的公式声明一个巨大的数组。如果您确实需要“一个大小接近最大可用 RAM 的数组”,那将是非常有限的,您应该说明该要求。您还可以查看磁盘支持的数据结构。看看熊猫。
-
@smci:我会试着在一秒钟内把它说得更清楚。你能扭转标题的变化吗?需要改进的不是创作。
-
@smci: 粗略的,以后会用到!如果没有,上面的代码就没有任何意义,不是吗?
标签: arrays performance python-2.7 numpy vectorization