2015-09-27 40 views
3

我有一個numpy數組列表。我想將數組列表轉換爲一個字符串。所以會有像'[stuff],[stuff2]'等長串數組。每個數組有192個元素。當我執行str(myList)時,如果列表有5個或更少的數組,則轉換工作。如果它有6個數組,我用橢圓返回截斷數組。爲什麼是這樣?我怎樣才能阻止它?將numpy數組列表轉換爲python中的字符串時的省略號3

我已經檢查了數組本身,它們實際上並不包含橢圓,它們包含正確的值。

我進一步研究了它,如果我做了類似str(myList [0:5])的工作,它可以在前5個數組上工作,但是第6個數組總是進入省略號。請注意,在打印屏幕時,這不僅僅是省略號,我保存了這個變量,並且當我查看保存的文本時,它具有省略號。

+0

聽起來像你的數組列表真的是一個二維數組。當數組大於1000個元素(因此是5 v 6)時,'numpy'使用橢圓。如果它確實是一個數組列表,它將獨立地格式化每個數組,而不使用省略號。 – hpaulj

回答

4

從快看,唯一的辦法就是使用numpy.set_printoptions:

import numpy as np 

a = np.random.randint(5, size=(6, 192)) 
s1 = str(a) 
np.set_printoptions(threshold = np.prod(a.shape)) 
s2 = str(a) 

print('...' in s1) 
print('...' in s2) 

True 
False 

我的Ubuntu 14.04系統,Python 2.7版上,numpy的1.8.2

改變後我會將默認值恢復爲1000,並且在我的 意見中,函數numpy.array2string應該有一個閾值 參數。

+0

謝謝!這樣可行。 – CHP

+0

http://stackoverflow.com/a/2891805/901925添加打印選項上下文 – hpaulj

相關問題