2017-10-13 34 views
0

下面的代碼生成矩陣X(I使用Python 2.7),以執行裝載的文本用方括號括:如何使用numpy的

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) 

哪個是故意以這種形式(假設我僅產生10個號碼):

[[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]] 

我的目標是使用numpy再次存儲和加載(帶方括號)。在存儲過程中,我使用了numpy.savetxt('dataset.txt', X, fmt='%d')(刪除方括號:()。問題是我想將它加載回上面顯示的相同形狀(包括方括號)。使用numpy.loadtxt(StringIO('dataset.txt'))有幫助。不知道如何實現這一點。我試圖找到一個(有效的)技巧這樣做,但真的我堅持!任何幫助,非常感謝。

謝謝

+0

你可以用''savetxt/loadtxt'往返執行一個簡單的數組,就像這樣。在文件中,但如果你不需要一個可讀的文件e,「保存/加載」對更好(也更快)。 – hpaulj

回答

1

我會用np.save()將其保存爲一個二進制文件並使用np.load()將其恢復回來

+0

哇,工作!謝謝你的提示! – Judas