相关疑难解决方法(0)

输入和输出numpy数组到h5py

我有一个Python代码,其输出是一个 在此输入图像描述size矩阵,其条目都是类型float.如果我使用扩展名保存它,.dat文件大小约为500 MB.我读到使用h5py大大减少了文件大小.所以,假设我有名为的2D numpy数组A.如何将其保存到h5py文件?另外,我如何读取相同的文件并将其作为一个numpy数组放在不同的代码中,因为我需要对数组进行操作?

python arrays numpy h5py

88
推荐指数
2
解决办法
9万
查看次数

如何正确保存和加载numpy.array()数据?

我想知道,如何numpy.array正确保存和加载数据.目前我正在使用该numpy.savetxt()方法.例如,如果我有一个数组markers,看起来像这样:

在此输入图像描述

我尝试通过以下方式保存它:

numpy.savetxt('markers.txt', markers)
Run Code Online (Sandbox Code Playgroud)

在其他脚本中,我尝试打开以前保存的文件:

markers = np.fromfile("markers.txt")
Run Code Online (Sandbox Code Playgroud)

这就是我得到的......

在此输入图像描述

保存的数据首先如下所示:

0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
Run Code Online (Sandbox Code Playgroud)

但是当我通过使用相同的方法保存刚加载的数据时,即.numpy.savetxt()它看起来像这样:

1.398043286095131769e-76
1.398043286095288860e-76
1.396426376485745879e-76
1.398043286055061908e-76
1.398043286095288860e-76
1.182950697433698368e-76
1.398043275797188953e-76
1.398043286095288860e-76
1.210894289234927752e-99
1.398040649781712473e-76
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?PS我没有其他"后台"操作.只需保存和加载,这就是我得到的.先感谢您.

python arrays numpy

75
推荐指数
3
解决办法
15万
查看次数

将数组或DataFrame与其他信息一起保存在文件中

统计软件Stata允许将短文本片段保存在数据集中.这可以使用notes和/或完成characteristics.

这对我来说是一个很有价值的功能,因为它允许我保存各种信息,从提醒和待办事项列表到有关我如何生成数据的信息,甚至是特定变量的估算方法.

我现在正试图在Python 3.6中提出类似的功能.到目前为止,我已经在线查看了一些帖子,但这些帖子并没有完全解决我想做的事情.

一些参考文章包括:

对于小型NumPy数组,我得出结论,函数numpy.savez()和a 的组合dictionary可以在单个文件中充分存储所有相关信息.

例如:

a = np.array([[2,4],[6,8],[10,12]])
d = {"first": 1, "second": "two", "third": 3}

np.savez(whatever_name.npz, a=a, d=d)
data = np.load(whatever_name.npz)

arr = data['a']
dic = data['d'].tolist()
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在:

是否有更好的方法可以将其他信息包含在包含NumPy数组或(大)的文件中Pandas DataFrame

我在听到有关特定特别感兴趣的优点缺点,你可能有例子的任何建议.依赖性越少越好.

python numpy hdf5 stata pandas

56
推荐指数
3
解决办法
9919
查看次数

Python:预加载内存

我有一个 python 程序,我需要在其中加载和反序列化 1GB 的 pickle 文件。这需要 20 秒,我想要一种机制,可以随时使用泡菜的内容。我看过shared_memory但它的所有使用示例似乎都涉及 numpy 而我的项目不使用 numpy。使用shared_memory或以其他方式实现这一目标的最简单和最干净的方法是什么?

这就是我现在加载数据的方式(每次运行):

def load_pickle(pickle_name):
    return pickle.load(open(DATA_ROOT + pickle_name, 'rb'))
Run Code Online (Sandbox Code Playgroud)

我希望能够在两次运行之间编辑模拟代码而无需重新加载泡菜。我一直在搞乱,importlib.reload但对于包含许多文件的大型 Python 程序来说,它似乎真的不太好用:

def main():
    data_manager.load_data()
    run_simulation()
    while True:
        try:
            importlib.reload(simulation)
            run_simulation()
        except:
        print(traceback.format_exc())
        print('Press enter to re-run main.py, CTRL-C to exit')
        sys.stdin.readline()
Run Code Online (Sandbox Code Playgroud)

python shared-memory

26
推荐指数
2
解决办法
707
查看次数

Python:如何在PyTables中存储一个numpy多维数组?

如何使用PyTables将numpy多维数组放入HDF5文件中?

据我所知,我不能在pytables表中放置一个数组字段.

我还需要存储有关此数组的一些信息,并能够对其进行数学计算.

有什么建议?

python arrays numpy multidimensional-array pytables

18
推荐指数
1
解决办法
2万
查看次数

使用Pickle保存Numpy数组

我有一个Numpy数组,我想保存(130,000 x 3)我想使用Pickle保存,使用以下代码.但是,我一直在pkl.load行中收到错误"EOFError:Ran out of input"或"UnsupportedOperation:read".这是我第一次使用Pickle,任何想法?

谢谢,

一只蚂蚁

import pickle as pkl
import numpy as np

arrayInput = np.zeros((1000,2)) #Trial input
save = True
load = True

filename = path + 'CNN_Input'
fileObject = open(fileName, 'wb')

if save:
    pkl.dump(arrayInput, fileObject)
    fileObject.close()

if load:
    fileObject2 = open(fileName, 'wb')
    modelInput = pkl.load(fileObject2)
    fileObject2.close()

if arrayInput == modelInput:
    Print(True)
Run Code Online (Sandbox Code Playgroud)

python numpy pickle

7
推荐指数
4
解决办法
2万
查看次数

酸洗大型NumPy阵列

我有一个很大的3d numpy数组,我想保留.我的第一种方法只是使用泡菜,但这似乎导致了一个解释不佳的错误.

test_rand = np.random.random((100000,200,50))
with open('models/test.pkl', 'wb') as save_file:
    pickle.dump(test_rand, save_file, -1)

---------------------------------------------------------------------------
error                                     Traceback (most recent call last)
<ipython-input-18-511e30b08440> in <module>()
      1 with open('models/test.pkl', 'wb') as save_file:
----> 2         pickle.dump(test_rand, save_file, -1)
      3 

C:\Users\g1dak02\AppData\Local\Continuum\Anaconda\lib\pickle.pyc in dump(obj, file, protocol)
   1368 
   1369 def dump(obj, file, protocol=None):
-> 1370     Pickler(file, protocol).dump(obj)
   1371 
   1372 def dumps(obj, protocol=None):

C:\Users\g1dak02\AppData\Local\Continuum\Anaconda\lib\pickle.pyc in dump(self, obj)
    222         if self.proto >= 2:
    223             self.write(PROTO + chr(self.proto))
--> 224         self.save(obj)
    225         self.write(STOP)
    226 

C:\Users\g1dak02\AppData\Local\Continuum\Anaconda\lib\pickle.pyc in save(self, obj)
    329 
    330 …
Run Code Online (Sandbox Code Playgroud)

python numpy pickle

1
推荐指数
1
解决办法
1万
查看次数

存储稀疏 Numpy 数组

我有一个 20,000 x 20,000 Numpy 矩阵,我希望通过文件存储,其中平均体积只有 12 个值。

仅存储以下格式的值的最有效方法是什么

if array[i][j] == 1:
   file.write("{} {} {{}}\n".format(i, j)
Run Code Online (Sandbox Code Playgroud)

其中 (i, j) 是数组的索引?

python arrays numpy matrix sparse-matrix

0
推荐指数
1
解决办法
3305
查看次数