【发布时间】:2020-03-23 10:48:12
【问题描述】:
我有形状为 777599 的一维数组。我想让我的数据一维数组的矩阵对角线为二维数组矩阵对角线。但我有一个问题。 这是我的代码:
import numpy as np
a = np.linspace(0, 2000, 777599)
b = np.diag(a)
print(b.shape)
响应是:
Traceback (most recent call last):
File "/home/willi/PycharmProjects/006_TA/017_gravkorCG5.py", line 29, in <module>
b = np.diag(a)
File "<__array_function__ internals>", line 6, in diag
File "/home/willi/PycharmProjects/venv/lib/python3.5/site-packages/numpy/lib/twodim_base.py", line 275, in diag
res = zeros((n, n), v.dtype)
MemoryError: Unable to allocate 4.40 TiB for an array with shape (777599, 777599) and data type float64
【问题讨论】:
-
具有这些尺寸的方形数组对于您的记忆来说太大了。为什么需要这个数组?对数组的大多数
numpy操作都涉及制作一个或多个相同大小的副本 - 无论是暂时的还是作为结果。
标签: python arrays numpy matrix diagonal