我用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/