我想知道是否可以使用 numpy.gcd() 計算超過 2 個陣列的最大公約數。對 x、y、z 使用以下陣列:
import numpy as np
x = np.array([[4,6,28],[2,5,6]])
y = np.array([[2,1,7],[7,23,6]])
z = np.array([[3,0,4],[7,4,3]])
這里采用 3 個陣列的 gcd 代碼:
result = np.gcd(x,y,z)
這導致:
array([[2, 1, 7],
[1, 1, 6]])
結果[0,2]
7
而不是 7,這不應該是 1 嗎?給定數字 28、7、4,以下回傳 1。
numpy.gcd.reduce([28, 7, 4])
所以我的問題是,如果我在某個時候犯了錯誤,或者 numpy.gcd不能將 3 個陣列作為輸入并簡單地計算它作為輸入接收的前兩個陣列的 gcd?
uj5u.com熱心網友回復:
來自https://numpy.org/doc/stable/reference/generated/numpy.gcd.html
函式簽名是這樣的:
def numpy.gcd(x1, x2, /, out=None, *, ...):
如果你gcd用三個引數呼叫,你基本上是在做z = gcd(x, y). 因此,您需要提出自己的功能。可能是這樣的
def my_gcd(x, y, z):
return np.gcd(np.gcd(x, y), z)
這將回傳
[[1 1 1]
[1 1 3]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/414908.html
標籤:
