我想打印numpy的陣列更好,使用索引到數組[0 1]
指標排零和一列:NumPy的索引來索引陣列
假設我們有一個很大的numpy的陣列
x = np.arange(400*8000).reshape(400,8000).astype(float)
現在我們要打印行100,但只有最後十個條目:
print x[100, -10:]
這將導致類似:
Index | X
[ 100 7990] | 807990
[ 100 7991] | 807991
[ 100 7992] | 807992
[ 100 7993] | 807993
[ 100 7994] | 807994
[ 100 7995] | 807995
[ 100 7996] | 807996
[ 100 7997] | 807997
[ 100 7998] | 807998
[ 100 7999] | 807999
我通過獲取指標如下產生這樣的:
index = np.indices(X.shape)[:, 100, -10:]
print index
# array([[ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100],
# [7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999]])
但是,這似乎是非常低效的,尤其是,當索引變得更爲複雜,或X
變大了(如在數十億項) 。
有沒有更好的方法從索引創建索引數組(索引是[100, -10:]
,索引數組是index
)?
我認爲這個解決方案非常可讀。如果您只想將其用於打印目的,在大多數情況下,速度不會成爲問題。過早優化是邪惡的。 – gg349