Python。我无法将数字从 txt 文件转换为带有 int 的验证器

标签 python arrays numpy

我用python生成一个数组,然后将其保存在txt文件中。当我恢复它并尝试将其转换为数组并使用它时,它给了我错误:

ufunc 'multiply' did not contain a loop with signature matching types dtype('

这是代码:

import numpy as np

lista=[1,2,3,4,5,6,7,8]
vector=np.array(lista)
print (vector)
lista.append(9)
vector=np.array(lista)
print (vector)
archivo= open('datos.txt','w')

archivo.write('%s'%vector)

archivo=open('datos.txt','r')
dades=archivo.read()


vector2=np.array(dades)

print(vector2)
print(vector2*2)

你能帮我吗?谢谢

最佳答案

当您在 dades=archivo.read() 中读取它时,您实际上会得到一个 19 个字符的字符串。

为了将其转换为 NumPy 数组,您需要进行一些处理:

>>> dades_as_ints = list(map(int, dades[1:-1].split()))
>>> vector2 = np.array(dades_as_ints)
array([1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> vector2 * 2
array([ 2,  4,  6,  8, 10, 12, 14, 16, 18])

我建议您查看numpy docs savetxt ,它将以人类可读的格式存储您的数组,或使用 numpy.save 来实现高效的存储/加载。

关于Python。我无法将数字从 txt 文件转换为带有 int 的验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54827474/

相关文章:

python:改变列表的副本会更改原始列表吗?

javascript - Backbone.js 比较函数,如何实现降序?

ios - 数组追加会覆盖 Realm 对象的最后一个索引

c - 打印 void 指针的值

python - LinAlg错误: SVD did not converge in matplotlib PCA

Python Pandas - "1D"文件到二维数组

numpy - 使用 map_fn Slow 进行元素采样

python - 如何使用 python opencv 裁剪图像中最大的对象?

python - 使用 Twilio/Flask 转发 SMS 的模式验证警告

python - 比较两个 gzip 文件的每四行