Numpy memmap 第一行随机
Numpy memmap first rows random
我正在测试 np.memmap
,因为我需要将它用于大型数据文件。我在 Windows 机器上 运行 python 3.7。
我的测试例子很简单
import numpy as np
arr = np.ones((10**4, 10), dtype=np.float32)
np.save("./arr_test.npy", arr)
data = np.memmap("./arr_test.npy", dtype=np.float32, shape=arr.shape)
print((data!=1).sum(), data[:30])
输出显示前32个不等于1
(32, memmap([[2.2366853e+08, 1.2387478e-40, 3.4833497e-15, 4.4898648e+21,
1.5767864e-19, 2.1442303e-07, 2.2228396e-15, 7.6830766e+31,
1.7177136e+19, 6.7425655e+22],
[1.5767864e-19, 1.8727951e+31, 2.2228527e-15, 2.7904159e+29,
1.5767847e-19, 6.4098282e-10, 1.4584911e-19, 2.4043096e-12,
1.3593928e-19, 1.3563156e-19],
[1.3563156e-19, 1.3563156e-19, 1.3563156e-19, 1.3563156e-19,
1.3563156e-19, 1.3563156e-19, 1.3563156e-19, 1.3563156e-19,
1.3563156e-19, 1.3563156e-19],
[1.3563156e-19, 7.7097618e-33, 1.0000000e+00, 1.0000000e+00,
1.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00,
1.0000000e+00, 1.0000000e+00],
[1.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00,
1.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00,
1.0000000e+00, 1.0000000e+00],
我错过了什么?
memmap
在没有额外信息的情况下处理原始数据,但 NPY-format 中的文件有一个 header,其中包含有关数据类型、维度等的信息。
non-zero 数字是 header-data 解释为浮点数。
函数 numpy.lib.format.open_memmap
旨在内存映射现有的 NPY-files 或先创建一个新的。
我正在测试 np.memmap
,因为我需要将它用于大型数据文件。我在 Windows 机器上 运行 python 3.7。
我的测试例子很简单
import numpy as np
arr = np.ones((10**4, 10), dtype=np.float32)
np.save("./arr_test.npy", arr)
data = np.memmap("./arr_test.npy", dtype=np.float32, shape=arr.shape)
print((data!=1).sum(), data[:30])
输出显示前32个不等于1
(32, memmap([[2.2366853e+08, 1.2387478e-40, 3.4833497e-15, 4.4898648e+21,
1.5767864e-19, 2.1442303e-07, 2.2228396e-15, 7.6830766e+31,
1.7177136e+19, 6.7425655e+22],
[1.5767864e-19, 1.8727951e+31, 2.2228527e-15, 2.7904159e+29,
1.5767847e-19, 6.4098282e-10, 1.4584911e-19, 2.4043096e-12,
1.3593928e-19, 1.3563156e-19],
[1.3563156e-19, 1.3563156e-19, 1.3563156e-19, 1.3563156e-19,
1.3563156e-19, 1.3563156e-19, 1.3563156e-19, 1.3563156e-19,
1.3563156e-19, 1.3563156e-19],
[1.3563156e-19, 7.7097618e-33, 1.0000000e+00, 1.0000000e+00,
1.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00,
1.0000000e+00, 1.0000000e+00],
[1.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00,
1.0000000e+00, 1.0000000e+00, 1.0000000e+00, 1.0000000e+00,
1.0000000e+00, 1.0000000e+00],
我错过了什么?
memmap
在没有额外信息的情况下处理原始数据,但 NPY-format 中的文件有一个 header,其中包含有关数据类型、维度等的信息。
non-zero 数字是 header-data 解释为浮点数。
函数 numpy.lib.format.open_memmap
旨在内存映射现有的 NPY-files 或先创建一个新的。