我需要从像一个1维数组的文件夹中获取每个numpy文件;这是我的代码:
path ='E:\\t'
traces= os.listdir(path)
print("tempTracesHW_Creation=", tempTracesHW)
for i in range(len(traces)):
HW = tempHW[i]
for trace in os.listdir(path):
file_array= np.load(os.path.join(path, trace))
print file_array
tempTracesHW[HW].append(file_array)
file_array的结果是:
file_array= [[-0.0006447 -0.00094265 -0.0012406 ..., -0.02096185 -0.0210646
-0.02114679]]
但我想要的是:
file_array= [-0.0006447 -0.00094265 -0.0012406 ..., -0.02096185 -0.0210646
-0.02114679]
如果你能帮助我,我将非常感激?
答案 0 :(得分:1)
numpy加载函数加载文件,return
加载array
。
file_array
是二维的,因为你对numpy.load的输入是二维的。
检查跟踪文件,您需要将其设为one-dimensional array
。
例如:
example = numpy.save("example",numpy.array([1,2,3]))
result = numpy.load("example.npy")
print result
[1,2,3]
看看这是否有帮助。 更多代码片段有助于理解您的问题。(关于跟踪文件)
答案 1 :(得分:0)
您可以使用flatten
将此(1,x)数组转换为(x,)数组。 flatten
可以使用不同的方式,但在这种情况下,它会执行您正在寻找的内容。
>>> import numpy as np
>>> a = np.array([[1, 2, 3, 4, 5]])
>>> a
array([[1, 2, 3, 4, 5]])
>>> a.shape
(1, 5)
>>> a.flatten()
array([1, 2, 3, 4, 5])
>>> a.flatten().shape
(5,)