Numpy floor float değerleri int için
Nov 23 2020
Float dizim var ve onları en yakın tam sayıya yerleştirmek istiyorum, böylece onları indis olarak kullanabilirim.
Örneğin:
In [2]: import numpy as np
In [3]: arr = np.random.rand(1, 10) * 10
In [4]: arr
Out[4]:
array([[4.97896461, 0.21473121, 0.13323678, 3.40534157, 5.08995577,
6.7924586 , 1.82584208, 6.73890807, 2.45590354, 9.85600841]])
In [5]: arr = np.floor(arr)
In [6]: arr
Out[6]: array([[4., 0., 0., 3., 5., 6., 1., 6., 2., 9.]])
In [7]: arr.dtype
Out[7]: dtype('float64')
Döşemeden sonra hala yüzüyorlar, bunları otomatik olarak tam sayılara çevirmenin bir yolu var mı?
Yanıtlar
2 Jocker Nov 23 2020 at 12:01
@DanielF açıklamasıyla yanıtı düzenliyorum: "kat tam sayıya dönüştürülmüyor, yalnızca tam sayı değerli kayan değerler veriyor, bu nedenle int olarak değiştirmek için hala bir astype'a ihtiyacınız var" Çözümü anlamak için şu kodu kontrol edin:
import numpy as np
arr = np.random.rand(1, 10) * 10
print(arr)
arr = np.floor(arr).astype(int)
print(arr)
OUTPUT:
[[2.76753828 8.84095843 2.5537759 5.65017407 7.77493733 6.47403036
7.72582766 5.03525625 9.75819442 9.10578944]]
[[2 8 2 5 7 6 7 5 9 9]]
1 vegiv Nov 23 2020 at 12:08
Neden sadece kullanmıyorsunuz:
np.random.randint(1,10)
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı