我有一個2D numpy的數組:添加名字numpy的陣列
my_array = numpy.array([[1,2],[3,4]])
當我打印出來,它出來是這樣的:
>>> print(my_array)
[[1 2]
[3 4]]
是否有可能把標籤或名稱上輸出?例如,讓我們說,我有
names = [['a', 'b'], ['c', 'd']]
那麼我想
a [[1 2]
b [3 4]]
c d
我有一個2D numpy的數組:添加名字numpy的陣列
my_array = numpy.array([[1,2],[3,4]])
當我打印出來,它出來是這樣的:
>>> print(my_array)
[[1 2]
[3 4]]
是否有可能把標籤或名稱上輸出?例如,讓我們說,我有
names = [['a', 'b'], ['c', 'd']]
那麼我想
a [[1 2]
b [3 4]]
c d
您可以與np.savetxt
做到這一點,但它會是真的哈克。
或者,你可以後期處理的str
或repr
,但是這真的醜陋,它會變得更加複雜陣列差,但即使對於一個固定的2x2的陣列,它是這樣的:
def format_my_2x2_array(a):
s = str(a).splitlines()
s[0] = 'a ' + s[0]
s[1] = 'b ' + s[1]
col0 = s[1].find('[') + 1
col1 = s[1].find(' ', col0) + 1
s.append(' ' * col0 + 'c' + ' ' * (col1 - col0 - 1) + 'd')
return '\n'.join(s)
做到在一個乾淨的話,你就需要手動遍歷的內容,並加入了他們自己,就像你的,你想打印出NumPy的樣式表的正常Python列表。
如果列和行名稱是您的數據的固有部分,你可能不希望在I/O功能,在事後釘他們,而是將它們存儲的數據。這正是Pandas的好處 - 基本上,DataFrame可以用作索引名稱的數組。如果你想用NumPy來做到這一點,這並沒有什麼幫助,但是就像你想用NumPy而不是列表列表來操作矩陣或大像素數組一樣,你想用Pandas代替NumPy例如,對具有命名行和列的結構進行操作。
這不是一個答案,但...這聽起來像你可能會感興趣的[熊貓](http://pandas.pydata.org)。 – abarnert