我有以下 Numpy 陣列。
a = np.array([0.1, 0.9, 0.17, 0.47, 0.5])
我怎樣才能找到一個數字,當乘以陣列時,把每個元素都變成一個整數?
例如,在這種情況下,該數字應為100,因為a乘以100會使每個元素成為整數。
>>> a * 100
array([10., 90., 17., 47., 50.])
我試過用 10 的最長小數長度的冪。但是,我需要找到可能的最小數字(并且必須大于 0)。
b = np.array([1.0, 0.5, 0.25, 0.75, 0.5])
因此,在這種情況下,該數字應為4而不是100。
>>> b * 4
array([4., 2., 1., 3., 2.])
uj5u.com熱心網友回復:
從你的策略開始。獲得使您成為陣列整數的 10 的最小冪。然后把它轉換成整數,得到公約數,你要的數就是10的冪除以公約數:
b = np.array([1.0, 0.5, 0.25, 0.75, 0.5])
d = np.gcd.reduce((b*100).astype(int))
b在25這里,你要的數字是100/25->4
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/342903.html
