উত্তর:
astype
পদ্ধতিটি ব্যবহার করুন ।
>>> x = np.array([[1.0, 2.3], [1.3, 2.9]])
>>> x
array([[ 1. , 2.3],
[ 1.3, 2.9]])
>>> x.astype(int)
array([[1, 2],
[1, 2]])
np.array([np.inf]).astype(int)
, np.array([-np.inf]).astype(int)
, এবং np.array([np.nan]).astype(int)
সব একই জিনিস ফিরে যান। কেন?
nan
এবং inf
ভাসমান-পয়েন্টের মানগুলি হয় এবং অর্থপূর্ণভাবে ইনটে রূপান্তর করা যায় না। আপনার নোটগুলির আগে মন্তব্য হিসাবে, আশ্চর্যজনক আচরণ হবে এবং আমি মনে করি না যে সঠিক আচরণটি সঠিকভাবে সংজ্ঞায়িত হয়েছে। আপনি যদি মানচিত্র nan
এবং inf
নির্দিষ্ট মানগুলিতে যেতে চান তবে আপনার নিজের এটি করতে হবে।
int
। এটা numpy.int32
।
: কিভাবে rounding নিয়ন্ত্রণ করতে জন্য কিছু numpy ফাংশন দ্রণ , মেঝে , TRUNC , ছাদের নিচের পিঠ নির্মাণ । আপনি কীভাবে ভাসমানগুলি, উপরে, নীচে বা নিকটতম ইনটকে বৃত্তাকার করতে চান তা নির্ভর করে।
>>> x = np.array([[1.0,2.3],[1.3,2.9]])
>>> x
array([[ 1. , 2.3],
[ 1.3, 2.9]])
>>> y = np.trunc(x)
>>> y
array([[ 1., 2.],
[ 1., 2.]])
>>> z = np.ceil(x)
>>> z
array([[ 1., 3.],
[ 2., 3.]])
>>> t = np.floor(x)
>>> t
array([[ 1., 2.],
[ 1., 2.]])
>>> a = np.rint(x)
>>> a
array([[ 1., 2.],
[ 1., 3.]])
এর মধ্যে একটিতে অন্তর্নিহিত তৈরি করতে, বা অন্য ধরণের বিন্দুগুলির মধ্যে একটি, অ্যাস্টাইপ ( ব্রেনবার্নের উত্তর হিসাবে):
a.astype(int)
array([[1, 2],
[1, 3]])
>>> y.astype(int)
array([[1, 2],
[1, 2]])
astype
প্রায়শই খুব জেনেরিক হয় এবং আমি মনে করি ইনটেক্স - ইনটি রূপান্তর করার সময় এটি সম্ভবত আরও কার্যকর। আমি যখন ভাসা করতে চাই - ধরণের রূপান্তরটি ধরণের রাউন্ডিং চয়ন করতে সক্ষম হওয়া একটি দুর্দান্ত বৈশিষ্ট্য।
7.99999
আপনি ints করতে চান 8
, হয় np.rint(arr).astype(int)
?
astype(np.uint8)
আপনি ব্যবহার করতে পারেন np.int_
:
>>> x = np.array([[1.0, 2.3], [1.3, 2.9]])
>>> x
array([[ 1. , 2.3],
[ 1.3, 2.9]])
>>> np.int_(x)
array([[1, 2],
[1, 2]])
তুমি নও নিশ্চিত আপনার ইনপুট একটি Numpy অ্যারে হতে যাচ্ছে, তাহলে আপনি ব্যবহার করতে পারেন asarray
সঙ্গে dtype=int
পরিবর্তে astype
:
>>> np.asarray([1,2,3,4], dtype=int)
array([1, 2, 3, 4])
যদি ইনপুট অ্যারেটিতে ইতিমধ্যে সঠিক টাইপ থাকে asarray
তবে অ্যারে অনুলিপিটি এড়ানো astype
হয় না (আপনি উল্লেখ না করে copy=False
):
>>> a = np.array([1,2,3,4])
>>> a is np.asarray(a) # no copy :)
True
>>> a is a.astype(int) # copy :(
False
>>> a is a.astype(int, copy=False) # no copy :)
True
np.inf
বাnp.nan
আপনার অ্যারে নেই, কারণ তাদের বিস্ময়কর ফলাফল রয়েছে। উদাহরণস্বরূপ,np.array([np.inf]).astype(int)
আউটপুটসarray([-9223372036854775808])
।