Numpy तल int करने के लिए मान तैरता है

Nov 23 2020

मेरे पास फ़्लोट्स की सरणी है, और मैं उन्हें निकटतम पूर्णांक तक फ़्लोर करना चाहता हूं, इसलिए मैं उन्हें सूचक के रूप में उपयोग कर सकता हूं।

उदाहरण के लिए:

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')

वे अभी भी फर्श के बाद तैर रहे हैं, क्या स्वचालित रूप से उन्हें पूर्णांक में डालने का एक तरीका है?

जवाब

2 Jocker Nov 23 2020 at 12:01

मैं @DanielF स्पष्टीकरण के साथ उत्तर को संपादित कर रहा हूं: "फर्श पूर्णांक में परिवर्तित नहीं होता है, यह सिर्फ पूर्णांक-मूल्यवान फ़्लोट देता है, इसलिए आपको समाधान को समझने के लिए इसे बदलने के लिए" अभी भी इस कोड की जाँच करें:

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

सिर्फ उपयोग क्यों नहीं:

np.random.randint(1,10)