np.loadtxt 读取单行数据时遇到了报错
代码:
import numpy as np
labelPath="./name.names"
names = np.loadtxt(labelPath, dtype='str')
print(names[0])
names中的数据:
报错:
IndexError: too many indices for array: array is 0-dimensional, but 1 were indexed
原因
当np.loadtxt 读取单行数据时候,会返回一个0维数组。0维度数组不能通过names[0]的形式来读取。
解决,将0维度数组也转为一维数组。
代码如下:
import numpy as np
labelPath="./name.names"
names = np.loadtxt(labelPath, dtype='str')
if names.ndim == 0:
names = np.array([names.item()])
print(type(names))
print(names)
print(names[0])
labelPath2="./name2.names"
names2 = np.loadtxt(labelPath2, dtype='str')
print(type(names2))
print(names2)
输出:
增加的部分:将0维度转为1维度。
if names.ndim == 0:
names = np.array([names.item()])
0维度数组
标量(scalar):一个标量 a 可以是整数、实数或复数。零维数组(即只有单纯的一个数)。
向量(vector):多个标量a1,a2,⋯,an按一定顺序组成一个序列。一维数组,向量的实质是 n 维线性空间中的静止点;shape=(1,n)
矩阵(matrix):将向量的所有标量都替换成相同规格的向量。二维数组;shape=(m,n)