numpy में ऐसा करने का तरीका structured array का उपयोग करना है।
हालांकि, कई मामलों में जहां आप विषम डेटा का उपयोग कर रहे हैं, एक साधारण पायथन सूची अधिक बेहतर विकल्प है। (या, हालांकि यह उत्तर लिखे जाने पर व्यापक रूप से उपलब्ध नहीं था, pandas.DataFrame
इस परिदृश्य के लिए बिल्कुल आदर्श है।)
भले ही, ऊपर दिया गया उदाहरण पूरी तरह से "सामान्य" numpy सरणी के रूप में काम करेगा। आप जो कुछ भी दिया है उसमें आप सब कुछ एक फ्लोट कर सकते हैं। (सब कुछ ... bools आसानी से ints के रूप में प्रतिनिधित्व किया जा सकता है तैरता के दो स्तंभों के अलावा, किसी पूर्णांक प्रतीत होता है।)
बहरहाल, संरचित dtypes का उपयोग कर वर्णन करने के लिए ...
import numpy as np
ua = 5 # No idea what "ua" is in your code above...
low_inc, med_inc = 0.5, 2.0 # Again, no idea what these are...
num = 100
num_fields = 11
# Use more descriptive names than "col1"! I'm just generating the names as placeholders
dtype = {'names':['col%i'%i for i in range(num_fields)],
'formats':2*[np.int] + 2*[np.float] + 2*[np.int] + 2*[np.bool] + 3*[np.int]}
data = np.zeros(num, dtype=dtype)
# Being rather verbose...
data['col0'] = np.arange(num, dtype=np.int)
data['col1'] = int(ua) * np.ones(num)
data['col2'] = np.random.uniform(low_inc/2, med_inc * 2, num)
data['col3'] = np.random.uniform(0, 6, num)
data['col4'] = np.random.randint(100, 5000, num)
data['col5'] = np.random.randint(100, 500, num)
data['col6'] = np.random.randint(0, 2, num).astype(np.bool)
data['col7'] = np.random.randint(0, 2, num).astype(np.bool)
data['col8'] = np.random.randint(100, 5000, num)
data['col9'] = np.random.randint(100, 5000, num)
data['col10'] = np.random.randint(100, 5000, num)
print data
कौन सा पैदावार 11 फ़ील्ड के साथ एक 100-तत्व सरणी:
array([ (0, 5, 2.0886534380436226, 3.0111285613794276, 3476, 117, False, False, 4704, 4372, 4062),
(1, 5, 2.0977199579338115, 1.8687472941590277, 4635, 496, True, False, 4079, 4263, 3196),
...
...
(98, 5, 1.1682309811443277, 1.4100766819689299, 1213, 135, False, False, 1250, 2534, 1160),
(99, 5, 1.746554619056416, 5.210411489007637, 1387, 352, False, False, 3520, 3772, 3249)],
dtype=[('col0', '<i8'), ('col1', '<i8'), ('col2', '<f8'), ('col3', '<f8'), ('col4', '<i8'), ('col5', '<i8'), ('col6', '|b1'), ('col7', '|b1'), ('col8', '<i8'), ('col9', '<i8'), ('col10', '<i8')])
क्या एनपी.एरे का उपयोग करने के कोई विकल्प हैं? – dassouki
आप वास्तव में क्या करने की कोशिश कर रहे हैं? मैं गणित को तेज करने के रूप में numpy के बारे में सोचता हूं: मैट्रिक्स गुणा, या इनपुट के पूरे गुच्छा के कोसाइन ले। आप जो कर रहे हैं उसके बारे में और जानने के बिना, मैं सुझाव दे सकता हूं कि एक नियमित पायथन सूची है। – mtrw