为什么文件长度只有一行时,numpy.loadtxt返回numpy.ndarray标量?

时间:2019-01-17 16:30:24

标签: python numpy numpy-ndarray

我使用np.loadtxt()函数,并根据读取输入的大小执行某些操作。该函数返回具有特定形状和长度的numpy.ndarray对象。例如,对于情况1和2,它返回了我期望的结果。

案例1:

文件:

1
2

输出:

returns: [1 2]
type: <class 'numpy.ndarray'>
shape: (2,)
length: 2

案例2:

文件:空

输出:

returns: []
type: <class 'numpy.ndarray'>
shape: (0,)
length: 0

但是,与情况3一样,如果文件中只有一个值,则返回不再像以前的情况一样是形状为numpy.ndarray的{​​{1}}对象,而是返回了{{1 }}具有标量值和形状(1,)的对象,这使得检查形状确实很麻烦。

案例3:

文件:

numpy.ndarray

输出:

()

为什么它返回形状为1 的{​​{1}}而不是形状为returns: 1 # and not [1] type: <class 'numpy.ndarray'> # type remains the same which makes checking awkward shape: () length: # producing error Traceback (...) 的{​​{1}}?有什么好处吗?

要清楚一点,我知道我可以检查array(1)并将这些标量转换成标量数组,但是我很好奇为什么这是选择的行为,以及对此是否有更清洁的解决方案?

0 个答案:

没有答案