নামপাই (NumPy) অ্যারে-এ স্ট্রিং ধরনের সংখ্যাগুলো ফ্লোটে রূপান্তর করা ডেটা প্রসেসিং, মেশিন লার্নিং এবং সাইয়েন্টifik কম্পিউটিং-এ সাধারণ কাজ। নিচে তিনটি দক্ষ পদ্ধতি দেখানো হলো।
উদাহরণ
import numpy as np
ini_array = np.array(["1.1", "1.5", "2.7", "8.9"])
print("প্রাথমিক অ্যারে:", ini_array)
# ['1.1' '1.5' '2.7' '8.9'] dtype='<U32'
১. astype() (সর্বাধিক সাধারণ এবং সুপারিশ করা)
res = ini_array.astype(np.float64) # বা np.float (ডিপ্রিকেটেড)
print("ফাইনাল অ্যারে:", res)
# [1.1 1.5 2.7 8.9] dtype='float64'
২. np.fromstring() (স্ট্রিং থেকে ডায়রেক্ট পার্স)
# প্রথমে জয়েন করুন, তারপর পার্স
joined = ', '.join(ini_array) # "1.1, 1.5, 2.7, 8.9"
res = np.fromstring(joined, dtype=np.float64, sep=', ')
print("ফাইনাল অ্যারে:", res)
৩. np.asarray() dtype প্যারামিটারসহ
res = np.asarray(ini_array, dtype=np.float64, order='C')
print("ফাইনাল অ্যারে:", res)
আউটপুট (সব পদ্ধতির জন্য একই)
[1.1 1.5 2.7 8.9]
তুলনা ও সুপারিশ
| পদ্ধতি | দক্ষতা | ব্যবহারিকতা | সুপারিশ |
|---|---|---|---|
astype() | ★★★★★ | সাধারণ কনভার্সনের জন্য সেরা | প্রাথমিক পছন্দ |
asarray() | ★★★★☆ | অতিরিক্ত কন্ট্রোল (order, copy) | যখন কপি এড়াতে চান |
fromstring() | ★★★☆☆ | একটি বড় স্ট্রিং থেকে পার্সিং | CSV/লগ ফাইল পার্সিংয়ে |
ত্রুটি হ্যান্ডলিং
# অবৈধ স্ট্রিং থাকলে এরর হয়
bad_array = np.array(["1.1", "abc", "2.7"])
# নিরাপদ কনভার্সন: errors='coerce' (পান্ডাসে) বা try-except
# নামপাইর সরাসরি errors প্যারামিটার নেই, তাই:
def safe_convert(arr):
result = []
for x in arr:
try:
result.append(float(x))
except ValueError:
result.append(np.nan)
return np.array(result)
print(safe_convert(bad_array)) # [1.1 nan 2.7]
সেরা অনুশীলন: সাধারণ কেসে
arr.astype(np.float64) ব্যবহার করুন। এটি স্পষ্ট, দ্রুত এবং নামপাই-এর ইডiones।