can’t convert np.ndarray of type numpy.object_
写python时遇到这个报错,在网上尝试了很多类型强制转换的语句都失败了,最后发现是文件读入时将头部也读入报错了!处理数据要仔细!!
- 报错语句:
labels = torch.tensor(batch_train_targets[i])
- 错误根源语句:
train_df = pd.read_csv('train.txt', delimiter='\t', header=None)
但是我的文件是有head的!所以去掉则不会将head作为一行数据读入。改为:
train_df = pd.read_csv('train.txt', delimiter='\t')
- 后来查阅知乎发现大佬解释的也很到位:
出现这个错误是因为想要把 几个 np.ndarray(这几个ndarray 除了第一维之外,其他 的维度是一样的) 先append 到 list 里面,然后再转化为 np.ndarray 来存储。存储没问题。不会报错,但是如果其中有一个 np.ndarray 与其他的 np.array 在除第一维【0】之外的维度上不同的话,那么最后由list 转化成的np.ndarray 的dtype 就是numpy.object_ 啦。然后在后面加载数据想要用正常的 np.ndarray 的时候,就会出现这个错误。
知乎原文
最后说一下所有的错误都是有因可寻的!!