簡體   English   中英

Numpy 如何將二維數組的元素相加?

[英]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 手冊中。

總結一下手冊,同時注入我自己的理解:

  1. arr.sum()在沒有axis參數的情況下調用只是簡單地總結了數組中的所有內容。 這是實現的最直接的語義操作。
  2. arr.sum(axis=0)將在求和時折疊軸 0(第一個軸)。
  3. arr.sum(axis=k)將在執行求和時折疊軸k

典型地,軸0在語義上被識別為行軸,軸1是列軸,軸2是深度軸,任何更高的都進入超立方體,不容易用語言描述。

混凝土:

  1. 在二維數組中,要折疊行(即按列求和),請執行arr.sum(axis=0)
  2. 在二維數組中,要折疊列(即按行求和),請執行arr.sum(axis=1)

歸根結底,第 3 點是您要記住的:仔細推理您希望折疊哪個軸,您永遠不會錯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM