[英]How is Numpy sum adding up elements of a 2d array?
假設我有一個 numpy 二維數組:
>>> t
array([[-0.00880717, 0.02522217, -0.01014062],
[-0.00866732, 0.01737254, 0.05396272]])
現在使用數組切片,我可以快速獲取從索引為1
的列開始的所有行中的所有項目並將它們相加:
>>> t[:, 1:].sum()
0.08641680780899146
要手動驗證,會發生以下情況:
>>> 0.02522217+0.01737254+-0.01014062+0.05396272
0.08641680999999998
只是為了更好地理解 numpy 數組操作,numpy 是先遍歷所有行並對行的項目求和,還是先向下一列,然后向下一列?
感謝您提出問題,@TMOTTM!
NumPy 求和語義的工作方式記錄在NumPy 手冊中。
總結一下手冊,同時注入我自己的理解:
arr.sum()
在沒有axis
參數的情況下調用只是簡單地總結了數組中的所有內容。 這是實現的最直接的語義操作。arr.sum(axis=0)
將在求和時折疊軸 0(第一個軸)。arr.sum(axis=k)
將在執行求和時折疊軸k
。 典型地,軸0
在語義上被識別為行軸,軸1
是列軸,軸2
是深度軸,任何更高的都進入超立方體,不容易用語言描述。
混凝土:
arr.sum(axis=0)
。arr.sum(axis=1)
。歸根結底,第 3 點是您要記住的:仔細推理您希望折疊哪個軸,您永遠不會錯!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.