我试着放很多numpy文件来得到一个大的numpy文件,我试着遵循这两个链接Append multiple numpy files to one big numpy file in python和Python append multiple files in given order to one big file这就是我所做的:
import matplotlib.pyplot as plt
import numpy as np
import glob
import os, sys
fpath ="/home/user/Desktop/OutFileTraces.npy"
npyfilespath ="/home/user/Desktop/test"
os.chdir(npyfilespath)
with open(fpath,'wb') as f_handle:
for npfile in glob.glob("*.npy"):
# Find the path of the file
filepath = os.path.join(npyfilespath, npfile)
print filepath
# Load file
dataArray= np.load(filepath)
print dataArray
np.save(f_handle,dataArray)
dataArray= np.load(fpath)
print dataArray
我有一个结果的例子:
/home/user/Desktop/Trace=96
[[ 0.01518007 0.01499514 0.01479736 ..., -0.00392216 -0.0039761
-0.00402747]]
[[-0.00824758 -0.0081808 -0.00811402 ..., -0.0077236 -0.00765425
-0.00762086]]
/home/user/Desktop/Trace=97
[[ 0.00614908 0.00581004 0.00549154 ..., -0.00814741 -0.00813457
-0.00809347]]
[[-0.00824758 -0.0081808 -0.00811402 ..., -0.0077236 -0.00765425
-0.00762086]]
/home/user/Desktop/Trace=98
[[-0.00291786 -0.00309509 -0.00329287 ..., -0.00809861 -0.00797789
-0.00784175]]
[[-0.00824758 -0.0081808 -0.00811402 ..., -0.0077236 -0.00765425
-0.00762086]]
/home/user/Desktop/Trace=99
[[-0.00379887 -0.00410453 -0.00438963 ..., -0.03497837 -0.0353842
-0.03575151]]
[[-0.00824758 -0.0081808 -0.00811402 ..., -0.0077236 -0.00765425
-0.00762086]
这一行表示第一个跟踪:
[[-0.00824758 -0.0081808 -0.00811402 ..., -0.0077236 -0.00765425
-0.00762086]]
它一直在重复。
两天前,我问了第二个问题,起初我认为我有最好的答案,但在尝试对最终文件“OutFileTraces.npy”进行打印和批处理建模之后,我发现我的代码:
1/不按顺序打印“test”文件夹中的numpy文件(trace0、trace1、trace2,…)
2/只保存文件中的最后一个跟踪,我的意思是当打印或打印OutFileTraces.npy时,我只找到一个跟踪,它是第一个跟踪。
所以我需要更正我的代码,因为我真的被屏蔽了。如果你能帮助我,我将非常感激。
提前谢谢。
如中所述
loading arrays saved using numpy.save in append mode
可以多次保存到打开的文件中,也可以多次加载。这并没有记录在案,也许也不是首选,但它确实有效。
savez
存档是保存多个数组的首选方法。下面是一个玩具示例:
下面是一个保存相同形状数组列表的简单示例
Glob生成无序列表。您需要使用额外的行显式排序,因为排序过程已就位,并且不返回列表。
NumPy文件包含一个数组。如果您想在一个文件中存储多个数组,您可以查看
.npz
文件和np.savez
https://docs.scipy.org/doc/numpy/reference/generated/numpy.savez.html#numpy.savez我还没有看到这个在广泛使用,所以您可能希望认真考虑替代方案。如果数组都是相同的形状并存储相关数据,则可以生成更大的数组。假设当前形状是
(N_1, N_2)
,并且您有N_0
这样的数组。循环将生成具有单个形状数组的文件
(N_0, N_1, N_2)
相关问题 更多 >
编程相关推荐