python - 如何生成一个非常大的一维数组
问题描述
例如我想生成一个大小为 1 万亿的一维数组
A = np.arange(1000000000000,dtype='float')
每当我运行这段代码时,我都会得到
Memory error
有没有其他方法可以做到这一点?
解决方案
好吧,您似乎遇到了您的计算机根本无法处理的问题。根本没有足够的 RAM 内存。如果您改为将数据类型更改为 int,您可以清楚地看到在内存中存储不同数据类型的区别:
>>> import numpy as np
>>> A = np.arange(1000000000000,dtype='float')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
MemoryError: Unable to allocate 7.28 TiB for an array with shape (1000000000000,) and data type float64
>>> A = np.arange(1000000000000,dtype='int')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
MemoryError: Unable to allocate 3.64 TiB for an array with shape (1000000000000,) and data type int32
一个解决方案是在问题开始之前将数组拆分为子数组,但您仍然无法在单个数组中呈现结果,因为它需要具有原始的万亿大小。
推荐阅读
- python - 使用 PIL(LSB) 的 Python 图像处理
- javascript - 打字稿中的 Set 类型是什么?
- node.js - Docker 代理错误:无法将请求 /api/product/B002QYW8LW 从 localhost:3000 代理到 http://localhost:5000
- java - 如何在 android 代码中读取和写入用户可访问目录?
- php - Laravel Excel 传递参数
- data-structures - 无法理解 Octave 结构声明
- google-bigquery - BigQuery 类型中有多少字节
- flutter - 我的 Flutter 项目可以为 Android 和 iOS 设置不同的版本号吗?
- go - 初始化连接到数据库时 SQLX 中未定义的“错误”
- javascript - 查找数组中是否存在数字