我使用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)
并将这些标量转换成标量数组,但是我很好奇为什么这是选择的行为,以及对此是否有更清洁的解决方案?