اذهب إلى المحتوى

السؤال

نشر

كيف أقوم بتحويل مصفوفة NumPy إلى قائمة List في Python على سبيل المثال:

import numpy
lst = [[1,2,3], [4,5,6]]
newArray = numpy.array(lst)
print(newArray)

"""
Output:
[[1 2 3]
 [4 5 6]]
 
"""

الآن كيف يمكنني تحويل newArray إلى قائمة List مرة أخرى؟ حاولت أن أستعمل الدالة list ولكن يبدو أنها تحول كل صف إلى مصفوفة Numpy array:

>>> list(newArray)
[array([1, 2, 3]), array([4, 5, 6])]

 

Recommended Posts

  • 0
نشر

يمكن استخدام الدالة tolist لتحويل مصفوفة numpy إلى list :

np.array([[1,2,3],[1,2,3]]).tolist()

=>
[[1, 2, 3], [1, 2, 3]]

أو استخدم flatten :

list(a.flatten())

هذه الدالة تحول المصفوفة لمصفوفة من بعد واحد، ما يسمح بتحويلها لقائمة مباشرة

  • 0
نشر

تستخدم الدالة tolist من اجل تحويل المصفوفة في هيئة numpy الي list، انظر المثال التالي لتحويل مصفوفة احادية الي list:

a = np.uint32([1, 2])
a_list = list(a)
a_list
>>[1, 2]
type(a_list[0])
>><class 'numpy.uint32'>

a_tolist = a.tolist()
a_tolist
>>[1, 2]
type(a_tolist[0])
>><class 'int'>

كذلك تستخدم tolist لتحويل مصفوفات ثناية الأبعاد مثل المثال التالي:

a = np.array([[1, 2], [3, 4]])
list(a)
>> [array([1, 2]), array([3, 4])]
a.tolist()
>> [[1, 2], [3, 4]]

 

  • 0
نشر

إذا كان هناك مصفوفة ثنائية البعد مثلاً أو أكثر يجب استخدام دالة لتحويلها ل مصفوفة أحادية البعد وكما في التعليقات السابقة تم استخدام الدالة flatten ولكن يمكننا استخدام الدالة ravel حيث تعتبر اسرع من الدالة flatten وترجع reference من المصفوفة الأصلية لذلك سيكون الحل كالتالي 

import numpy
lst = [[1,2,3], [4,5,6]]
newArray = numpy.array(lst)
newArray.ravel().tolist()

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...