gpt4 book ai didi

Python numpy : "Array is too big"

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:19 24 4
gpt4 key购买 nike

import numpy
from scipy.spatial.distance import pdist
X = numpy.zeros(50000,25)
C = pdist(X, 'euclidian')

我想找到:

然后 numpy 给出错误:数组太大。

我认为问题与 C 的数组大小有关。Pdist 无法创建 (50000,50000) 数组。我不知道为什么 numpy 会限制?我可以在 matlab 中运行相同的代码。我如何使用数组运行此代码?

而且,我发现可能存在重复,但它们的数组矩阵大小太大。

Is it possible to create a 1million x 1 million matrix using numpy? Very large matrices using Python and NumPy

最佳答案

首先,您的代码中有一些拼写错误。它是:

X = numpy.zeros((50000,25)) # it's a tuple going in
C = pdist(X, 'euclidean') # euclidean with an e

当然这对问题来说并不重要。

欧几里得 pdist 只是对 numpy.linalg.norm ( http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.norm.html ) 的调用。这是一个非常通用的功能。如果由于内存限制它不适用于您的情况,您可以随时自己创建一些东西。两个 50000 长度的向量不会占用那么多内存,这可以进行一对一比较:

np.sqrt(np.sum(np.square(X[0])) + np.sum(np.square(X[1])))

然后你只需要循环遍历整个事情。

希望对你有帮助

关于Python numpy : "Array is too big",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17805785/

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