Python 当只有一行时,数组的形状和长度返回4?

Python 当只有一行时,数组的形状和长度返回4?,python,arrays,csv,numpy,dimensions,Python,Arrays,Csv,Numpy,Dimensions,在执行CSV文件的np.loadtxt()后,我看到以下基于仅包含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 两行示例: dcsv: [[ 45.29638366 -75.9242803

在执行CSV文件的
np.loadtxt()
后,我看到以下基于仅包含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

两行示例:

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
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行示例:

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
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…10000多行。np.atleast_2d和ndim都产生了一个0行和1行的结果。我的解决方案是使用np.size,它为0行返回一个0,为1行返回一个4,以及这两种方法中的任何一种,它允许我识别一个文件中的0行或1行。np.ndarray.len将处理任何数量>=2的行

numpy.ndarray的
方法返回第一个维度的长度。在您的情况下,形状是
(4L,)
,因此
len
len
将返回
4

例如,如果要添加维度,可以指定数组应为:


出于某种原因,
numpy.loadtxt
默认压缩长度为1的轴,而不是保留输入的行-列结构。您可以指定
ndmin=2
以保留结构:

ndmin:int,可选
返回的数组将至少有ndmin 尺寸。否则,一维轴将受到挤压。合法的 值:0(默认)、1或2


如果希望形状为(1,4),请使用参数
ndmin=2
。0行生成:dcsv形状:(1L,0L)和数据集长度dcsv:1行,而1行生成:dcsv形状:(1L,4L)和数据集长度dcsv:1行。你知道为什么吗?我想这是因为0行被解释为
np.array([]])
。在这种情况下,您对
形状
#行
的期望是什么?理论上,它给出了一个预期的输出:找到1行0列….:-]