在预先形成np.loadtxt()
个CSV文件后,我会根据仅包含1行数据的文件看到以下结果。
dcsv: [ 45.29625588 -75.92420601 64.66075832 2.25 ]
dcsv shape: (4L,)
dcsv type: float64
DataSet Length dcsv: 4 Rows
我不知道,为什么它认为有4行数据。它识别出有0行和2行或更多行,但只有1时返回4.
2行示例:
dcsv: [[ 45.29638366 -75.92428038 64.8255732 1. ]
[ 45.29638376 -75.92427927 64.82507261 13. ]]
dcsv shape: (2L, 4L)
dcsv type: float64
DataSet Length dcsv: 2 Rows
0行示例:
dcsv: []
dcsv shape: (0L,)
dcsv type: float64
DataSet Length dcsv: 0 Rows
dcsv = []
dcsv = np.loadtxt('Start5SecondsSIMPy2JS.csv',delimiter=',',skiprows=0,usecols = (0,1,2,3))
print "dcsv:", dcsv
print "dcsv shape:", dcsv.shape
print "dcsv type: ", dcsv.dtype
print "DataSet Length dcsv:",dcsvLen,"Rows"
非常感谢提供解决方案。
我需要使用0,1,2 ..... 10,000+行的解决方案。 np.atleast_2d& ndim产生1的结果,0行1行。我的解决方案是使用np.size,它返回0表示0行,4表示1行,这些方法中的任何一个允许我识别0行或1行的文件。任何数量的行> = 2将由np.ndarray.len处理。
答案 0 :(得分:2)
出于某种原因,LibreSSL
默认压缩长度为1的轴而不是保留输入的行列结构。您可以指定numpy.loadtxt
来保留结构:
ndmin : int ,可选
返回的数组至少包含 ndmin 尺寸。否则将挤压单维轴。法律 值:0(默认值),1或2。
答案 1 :(得分:1)
__len__
的{{1}}方法返回第一维的长度。在您的情况下,形状为numpy.ndarray
,因此(4L, )
或len
将返回__len__
。
例如,如果要添加维度,请指定该数组应为atleast_2d
:
4