2017-03-25 133 views
0

我真的需要你的帮助。我一直在试图转换它并寻找文档,但我想我不知道我在找什么。我如何使用numpy将数组转换为数组数组

我输入的文件有这样的结构:

20010102,2301,0.95070,0.95070,0.95070,0.95070,4 
20010102,2302,0.95060,0.95060,0.95050,0.95050,4 
20010102,2303,0.95050,0.95070,0.95050,0.95060,4 
20010102,2304,0.95060,0.95060,0.95060,0.95060,4 

这里是我的代码:

import numpy as np 
EU = np.loadtxt('data_s.csv', delimiter=',') 
sample = EU[:5] 
size = len(sample) 
print (sample) 

,它的输出是这样的:

[[ 2.00101020e+07 2.30100000e+03 9.50700000e-01 9.50700000e-01 
    9.50700000e-01 9.50700000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30200000e+03 9.50600000e-01 9.50600000e-01 
    9.50500000e-01 9.50500000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30300000e+03 9.50500000e-01 9.50700000e-01 
    9.50500000e-01 9.50600000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30400000e+03 9.50600000e-01 9.50600000e-01 
    9.50600000e-01 9.50600000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30500000e+03 9.50600000e-01 9.50600000e-01 
    9.50600000e-01 9.50600000e-01 4.00000000e+00]] 

所以我试图重塑它(我相信这不是我应该做的):

sample = sample.reshape(size, 7) 
print(sample) 

和我的输出是完全一样的:

[[ 2.00101020e+07 2.30100000e+03 9.50700000e-01 9.50700000e-01 
    9.50700000e-01 9.50700000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30200000e+03 9.50600000e-01 9.50600000e-01 
    9.50500000e-01 9.50500000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30300000e+03 9.50500000e-01 9.50700000e-01 
    9.50500000e-01 9.50600000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30400000e+03 9.50600000e-01 9.50600000e-01 
    9.50600000e-01 9.50600000e-01 4.00000000e+00] 
[ 2.00101020e+07 2.30500000e+03 9.50600000e-01 9.50600000e-01 
    9.50600000e-01 9.50600000e-01 4.00000000e+00]] 

我所寻找的是什么输出是这样的:

[[[2.00101020e+07], [2.30100000e+03], [9.50700000e-01], [9.50700000e-01], 
     [9.50700000e-01], [9.50700000e-01], [4.00000000e+00]], 
...] 

我也试过这样:

sample = EU[:5] 
final = [] 
for line in sample: 
    va = [] 
    for var in line: 
     var = np.array(var) 
     va.append(var) 
    final.append(va) 
print(final) 

输出功率为:

[[array(20010102.0), array(2301.0), array(0.9507), array(0.9507), array(0.9507), array(0.9507), array(4.0)], [array(20010102.0), array(2302.0), array(0.9506), array(0.9506), array(0.9505), array(0.9505), array(4.0)], [array(20010102.0), array(2303.0), array(0.9505), array(0.9507), array(0.9505), array(0.9506), array(4.0)], [array(20010102.0), array(2304.0), array(0.9506), array(0.9506), array(0.9506), array(0.9506), array(4.0)], [array(20010102.0), array(2305.0), array(0.9506), array(0.9506), array(0.9506), array(0.9506), array(4.0)]] 

碰巧是一个列表,而不是一个数组。所以我试过这个:

final = np.array(final) 

这让我回到了起点。

我在机器学习的项目,应该能够把这些输入并在此刻他们看起来都像每一行的工作是输入,没有像每个值是一个独立的变量。

也许我在想这个错。我尝试过使用熊猫,但是我意识到使用numpy并且经历痛苦必须弄清楚这一点,比让熊猫给我几千兆字节的数据更好。

这可能是愚蠢的,但请帮助我!我将非常感谢您的帮助!

+0

'样本[...,无]'或'样本[...,np.newaxis]'我猜。 – Divakar

+0

'sample'是(5,7)形状,对吗?看起来像你想要的(5,7,1)或者也许(35,1) – hpaulj

+0

其实现在我尝试了(5,7,1),它对我来说效果很好。非常感谢你们! – Awah

回答

0

你试过

sample = sample.reshape(size, 7, 1) 

+0

我没有,我不知道我可以做到这一点!重塑的文件并没有完全说明如何完成重塑!十分感谢你的帮助!我只是尝试过,它的工作! – Awah