উত্তর:
ঠিক আছে, আপনি যদি তালিকা হিসাবে ডেটা পড়েন তবে কেবল np.array(map(float, list_of_strings))
(বা সমতুল্য, একটি তালিকা বোঝার ব্যবহার করুন) করুন। (পাইথন 3, আপনি কল করতে হবে list
উপর map
যদি আপনি ব্যবহার ফেরত মান map
সাল থেকে map
আয় কোনো ইটারেটরে এখন।)
যাইহোক, যদি এটি ইতিমধ্যে স্ট্রিংগুলির একটি নমুনা অ্যারে হয় তবে এর থেকে আরও ভাল উপায়। ব্যবহার astype()
।
import numpy as np
x = np.array(['1.1', '2.2', '3.3'])
y = x.astype(np.float)
list
। নম্পি অ্যারেগুলি ইচ্ছাকৃতভাবে একজাতভাবে টাইপ করা হয়। আপনি যদি সত্যিই চান তবে আপনি একটি অবজেক্ট অ্যারে (উদাহরণস্বরূপ np.array(['apple', 1.2, 1, {'b'=None, 'c'=object()}], dtype=object)
) ব্যবহার করতে পারেন । তবে তালিকা ব্যবহারের ক্ষেত্রে অবজেক্ট অ্যারেগুলির কোনও উল্লেখযোগ্য সুবিধা নেই।
আপনি এটি ব্যবহার করতে পারেন
import numpy as np
x=np.array(['1.1', '2.2', '3.3'])
x=np.asfarray(x,float)
আর একটি বিকল্প নামপি.এসআররে হতে পারে :
import numpy as np
a = ["1.1", "2.2", "3.2"]
b = np.asarray(a, dtype=np.float64, order='C')
পাইথন 2 * এর জন্য:
print a, type(a), type(a[0])
print b, type(b), type(b[0])
ফলাফল:
['1.1', '2.2', '3.2'] <type 'list'> <type 'str'>
[1.1 2.2 3.2] <type 'numpy.ndarray'> <type 'numpy.float64'>
আপনার যদি একটি একক স্ট্রিং থাকে (বা তৈরি করুন), আপনি এনপি.ফর্মস্ট্রিং ব্যবহার করতে পারেন :
import numpy as np
x = ["1.1", "2.2", "3.2"]
x = ','.join(x)
x = np.fromstring( x, dtype=np.float, sep=',' )
দ্রষ্টব্য, x = ','.join(x)
এক্স অ্যারেটিকে স্ট্রিংয়ে রূপান্তরিত করে '1.1, 2.2, 3.2'
। আপনি যদি txt ফাইল থেকে একটি লাইন পড়েন তবে প্রতিটি লাইন ইতিমধ্যে একটি স্ট্রিং হবে।