首先有办法将字符串转换为数组吗? 我正在寻找一种方法来解决这个问题:
['[[ 18.41978673]\n', ' [ 0.34748864]\n', ' [ -9.55729142]]']
回到
[[ 18.41978673]
[ 0.34748864]
[ -9.55729142]]
其次,是否存在将数组作为数组存储在.txt文件中而不必将其首先转换为字符串?
这是我用来存储它们的当前方法:
def add_to_file(self, weights):
path = 'C:/Users\PycharmProjects\project Current'
file = open(path, 'w')
file.write(weights)
file.close()
add_to_file(str(synaptic_weights))
尝试按以下方式进行操作时:
add_to_file(synaptic_weights)
我在控制台中有这个回复:
TypeError:write()参数必须是str,而不是numpy.ndarray
文件类型不必是.txt。如果有更好的存储阵列的方法,我很满意。
答案 0 :(得分:2)
由于您使用的是Numpy数组,因此保存数组的简单方法是:
np.savetxt(file_name, my_array)
然后:
my_array = np.loadtxt(file_name)
答案 1 :(得分:1)
你需要跳过一些箍,但你可以使用json.loads
和re.sub
来完成。这是抢救数据并以可用形式存储数据的第一步。
import json
import re
data = json.loads(re.sub(r"'|\\n", '', str(l)))[0]
print(data)
# [[18.41978673], [0.34748864], [-9.55729142]]
现在您已经抢救了数据,您可以查看一些保存到文件的选项。
一个选项(可能是最好的)是使用np.save
:
np.save('data.npy', data)
替代方案包括json.dump
或pickle.dump
。这可行:
import json
json.dump(data, open('data.json', 'w'))
或者pickle
:
import pickle
pickle.dump(data, open('data.pkl', 'wb'))
答案 2 :(得分:1)