dgo*_*sen 69 python csv arrays numpy reshape
鉴于此CSV文件:
"A","B","C","D","E","F","timestamp"
611.88243,9089.5601,5133.0,864.07514,1715.37476,765.22777,1.291111964948E12
611.88243,9089.5601,5133.0,864.07514,1715.37476,765.22777,1.291113113366E12
611.88243,9089.5601,5133.0,864.07514,1715.37476,765.22777,1.291120650486E12
Run Code Online (Sandbox Code Playgroud)
我只想将它作为矩阵/ ndarray加载3行和7列.但是,出于某种原因,我可以摆脱numpy的是一个有3行(每行一个)而没有列的ndarray.
r = np.genfromtxt(fname,delimiter=',',dtype=None, names=True)
print r
print r.shape
[ (611.88243, 9089.5601000000006, 5133.0, 864.07514000000003, 1715.3747599999999, 765.22776999999996, 1291111964948.0)
(611.88243, 9089.5601000000006, 5133.0, 864.07514000000003, 1715.3747599999999, 765.22776999999996, 1291113113366.0)
(611.88243, 9089.5601000000006, 5133.0, 864.07514000000003, 1715.3747599999999, 765.22776999999996, 1291120650486.0)]
(3,)
Run Code Online (Sandbox Code Playgroud)
我可以手动迭代并将其破解成我想要的形状,但这看起来很傻.我只是想把它作为一个合适的矩阵加载,这样我就可以将它切成不同的尺寸并绘制它,就像在matlab中一样.
Kav*_*_kh 141
纯净的numpy
numpy.loadtxt(open("test.csv", "rb"), delimiter=",", skiprows=1)
Run Code Online (Sandbox Code Playgroud)
查看loadtxt文档.
你也可以使用python的csv模块:
import csv
import numpy
reader = csv.reader(open("test.csv", "rb"), delimiter=",")
x = list(reader)
result = numpy.array(x).astype("float")
Run Code Online (Sandbox Code Playgroud)
您必须将其转换为您喜欢的数字类型.我想你可以把整个事情写成一行:
result = numpy.array(list(csv.reader(open("test.csv", "rb"), delimiter=","))).astype("float")
添加提示:
您还可以使用pandas.io.parsers.read_csv并获取numpy更快的关联数组.
我认为使用dtype名称行的位置会使例程混乱.尝试
>>> r = np.genfromtxt(fname, delimiter=',', names=True)
>>> r
array([[ 6.11882430e+02, 9.08956010e+03, 5.13300000e+03,
8.64075140e+02, 1.71537476e+03, 7.65227770e+02,
1.29111196e+12],
[ 6.11882430e+02, 9.08956010e+03, 5.13300000e+03,
8.64075140e+02, 1.71537476e+03, 7.65227770e+02,
1.29111311e+12],
[ 6.11882430e+02, 9.08956010e+03, 5.13300000e+03,
8.64075140e+02, 1.71537476e+03, 7.65227770e+02,
1.29112065e+12]])
>>> r[:,0] # Slice 0'th column
array([ 611.88243, 611.88243, 611.88243])
Run Code Online (Sandbox Code Playgroud)