Amer Abdallah نشر 8 أغسطس 2021 أرسل تقرير نشر 8 أغسطس 2021 لنفترض أن لدي قائمة بالشكل التالي: lst =[('a', 0), ('b', 1), ('c', 2), ('d', 3)] كيف يمكنني تحويل القائمة السابقة إلى مصفوفة Numpy بحيث يكون كل حرف من الحروف (a, b, c, d) عبارة عن أول صف في المصفوفة، والأرقام (0, 1, 2, 3) هي ثاني صف، بحيث تصبح النتيحة كالتالي: array([['a', 'b', 'c', 'd'], ['0', '1', '2', '3']]) 1 اقتباس
2 Ali Haidar Ahmad نشر 9 أغسطس 2021 أرسل تقرير نشر 9 أغسطس 2021 1. تحويل ال tuple إلى قوائم ثم تحويل القائمة إلى مصفوفة، ثم تنفيذ عملية Transpose عليها (المنقول): tuples = [('a', 2), ("b", 4), ("c", 6)] lists = [list(x) for x in tuples] print(lists) # [['a', 2], ['b', 4], ['c', 6]] arr=np.array(lists) arr.T """ array([['a', 'b', 'c'], ['2', '4', '6']], dtype='<U1') """ 2.بشكل مشابه للطريقة السابقة لكن هنا سوف نستبدل حلقة ال for بتعليمة ال map: tuples = [('a', 2), ("b", 4), ("c", 6)] lists = list(map(list, tuples)) print(lists) # [['a', 2], ['b', 4], ['c', 6]] arr=np.array(lists) arr.T """ array([['a', 'b', 'c'], ['2', '4', '6']], dtype='<U1') """ 3.تحويلها إلى قاموس، ثم تحويلها إلى مصفوفة، ثم تنفيذ عملية Transpose عليها (المنقول): tuples = [('a', 2), ("b", 4), ("c", 6)] dic=dict(tuples) print(dic) # {'a': 2, 'b': 4, 'c': 6} # [['a', 2], ['b', 4], ['c', 6]] arr=np.array(dic).T arr # array({'a': 2, 'b': 4, 'c': 6}, dtype=object) 4. أو بالشكل التالي، حيث نقوم بتحويل القائمة إلى قاموس، ثم نخزن قيمه (القيم وليس المفاتيح)، ثم نحول الخرج ليصبح قائمة ثم نحوله لمصفوفة، وأخيراً نحوله من البعد (,3) إلى البعد (3,1) أي أصبحت مصفوفة ثنائية ثم نقوم باستخراج المفاتيح و نضعهم في مصفوفة (كما في المرحلة السابقة لكن هنا نستخرج المفاتيح ونخزنها) والغاية من ذلك هي لربط النتائج ووضعها في مصفوقة واحدة، حيث أن المفاتيح للقاموس الذي تم إنتاجه هي ال a c أما القيم فهي القيم التي تقابلها: tuples = [('a', 2), ("b", 4), ("c", 6)] values=np.array(list(dict(tuples).values())).reshape(1,-1) # dict_values([2, 4, 6]) keys=np.array(list(dict(tuples).keys())).reshape(1,-1) # dict_keys(['a', 'b', 'c']) np.concatenate((keys, values), axis=0) """ array([['a', 'b', 'c'], ['2', '4', '6']], dtype='<U21') """ 2 اقتباس
0 Wael Aljamal نشر 8 أغسطس 2021 أرسل تقرير نشر 8 أغسطس 2021 يمكننا أن نستخلص من القائمة مصفوفة بالعناصر الأولى (ترتريب أول) ومصفوفة بالعناصر الثانية (ترتيب ثاني) [i[0] for i in lst] // تعيد مصفوفة بالعناصر التي لها ترتريب أول ثم نقوم بدمجهم في مصفوفة numpy ثنائية الأبعاد باستخدام الدالة stack import numpy as np lst =[('a', 0), ('b', 1), ('c', 2), ('d', 3)] arr1 = np.array([i[0] for i in lst]) arr2 = np.array([i[1] for i in lst]) arr = np.stack((arr1, arr2)) print(arr) والناتج: [['a' 'b' 'c' 'd'] ['0' '1' '2' '3']] 1 اقتباس
السؤال
Amer Abdallah
لنفترض أن لدي قائمة بالشكل التالي:
كيف يمكنني تحويل القائمة السابقة إلى مصفوفة Numpy بحيث يكون كل حرف من الحروف (a, b, c, d) عبارة عن أول صف في المصفوفة، والأرقام (0, 1, 2, 3) هي ثاني صف، بحيث تصبح النتيحة كالتالي:
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.