如何在python中获得一个维度的数组?

时间:2017-05-10 09:17:51

标签: python arrays numpy

我需要从像一个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]

如果你能帮助我,我将非常感激?

2 个答案:

答案 0 :(得分:1)

numpy加载函数加载文件,return加载arrayfile_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,)