Python 如何使用numpy加载带括号的文本

Python 如何使用numpy加载带括号的文本,python,python-2.7,numpy,Python,Python 2.7,Numpy,以下代码生成一个矩阵X(我使用Python 2.7): 这是故意以这种形式出现的(假设我只生成10个数字): 我的目标是使用numpy再次存储和加载它(使用方括号)。在存储过程中,我使用numpy.savetxt('dataset.txt',X,fmt='%d')(它删除了方括号:()。问题是我想将它加载回上面显示的相同形状(包括方括号)。使用numpy.loadtxt(StringIO('dataset.txt'))有帮助吗?我不知道如何实现。我试图找到一个(有效的)技巧来实现,但我真的被卡住

以下代码生成一个矩阵
X
(我使用Python 2.7):

这是故意以这种形式出现的(假设我只生成10个数字):

我的目标是使用
numpy
再次存储和加载它(使用方括号)。在存储过程中,我使用
numpy.savetxt('dataset.txt',X,fmt='%d')
(它删除了方括号:()。问题是我想将它加载回上面显示的相同形状(包括方括号)。使用
numpy.loadtxt(StringIO('dataset.txt'))
有帮助吗?我不知道如何实现。我试图找到一个(有效的)技巧来实现,但我真的被卡住了!!非常感谢任何帮助


谢谢。

我会使用np.save()将其保存为二进制文件,然后使用np.load()将其取回。

您可以使用这样一个简单的数组来执行
savetxt/loadtxt
往返。只是不希望在文件中看到[]。但是如果您不需要人类可读的文件,
save/load
对更好(更快)。
X = [random.randint(0, 2 ** 8) for _ in range(num)]

# Removes duplicates
X = list(set(X))

# Transforms into string representation
X = [('{0:0' + str(8) + 'b}').format(x) for x in X]

# Transforms each bit into an integer.
X = np.asarray([list(map(int, list(x))) for x in X], dtype=np.int8)
[[1 0 1 1 0 0 0 0]
 [0 1 0 0 0 1 1 1]
 [0 0 0 0 0 0 0 1]
 [1 0 0 0 0 1 0 0]
 [0 1 1 0 0 1 1 0]
 [1 1 0 0 1 1 0 1]
 [1 1 1 0 0 1 1 1]
 [0 1 0 0 1 1 1 1]]