Fahmy Mostafa نشر 25 يوليو 2021 أرسل تقرير نشر 25 يوليو 2021 لنفترض أن لدي المصفوفة التالية: arr = numpy.array([[1, 2], [3, 4], [5, 6]]) عندما أستعمل arr[n] أحصل على صف بالكامل، [1, 2] مثلًا، كيف يمكنني أن أصل إلى أول خانة في كل عمود وأحصل على [1, 3, 5]؟ وهل هذا الأمر (إستخدام الأعمدة بدلًا من الصفوف) يؤثر على أداء السكريبت؟ 1 اقتباس
0 Wael Aljamal نشر 25 يوليو 2021 أرسل تقرير نشر 25 يوليو 2021 يمكننا استخدام التقطيع slicing كالتالي: [:,0] هذا يسقرأ أول عنصر من كل مصفوفة جزئية (أول عنصر من مصفوفة متعددة الأبعاد) arr = numpy.array([[1, 2], [3, 4], [5, 6]]) arr[:,0] ==> array([1, 3, 5]) وهي أسرع بكثير من: [x[0] for x in arr] اقتباس
0 عبدالباسط ابراهيم نشر 26 يوليو 2021 أرسل تقرير نشر 26 يوليو 2021 يمكنك أيضاً بالإضافة للحل السابق استخدام ال transpose بحيث يتم قلب المصفوفة وبعدها يمكنك الوصول للعمود الذي تريده من خلال الصف كالتالي array([[0, 1], [2, 3]]) np.transpose(x) array([[0, 2], [1, 3]]) #لاحظ عناصر المصفوفة تم تبديل الصف مع العمود ومن خلال التالي يمكنك تنفيذ ما تريده arr.T[0] سيكون الناتج كالتالي array([1, 3, 5]) اقتباس
1 Ali Haidar Ahmad نشر 26 يوليو 2021 أرسل تقرير نشر 26 يوليو 2021 يمكنك الوصول إلى أي جزء من أجزاء المصفوفة اعتماداً على مفهوم ال slicing في نمباي: import numpy as np arr = [[1, 2, 3], [7, 0, 7], [0, 8, 2]] arr = np.array(arr) print(arr) print('0th row: ') print(arr[0, :]) print('2nd column: ') print(arr[:, 2]) # يمكن أيضًا تحديد عدة أعمدة أو صفوف print('0th and 1st row:') print(arr[:,[0,1]]) """ [[1 2 3] [7 0 7] [0 8 2]] 0th row: [1 2 3] 2nd column: [3 7 2] 0th and 1st row: [[1 2] [7 0] [0 8]] """ يمكنك أيضاً استخدام مفهوم ال Ellipsis: # numpy_Array_name[…,column] للاعمدة # numpy_Array_name[row,…] للاسطر import numpy as np arr = [[1, 2, 4], [5, 6, 8], [7, 2, 2]] a = np.array(arr) print(a) print('0th column: ') print(a[..., 0]) print('1st row: ') print(a[1, ...]) """ [[1 2 4] [5 6 8] [7 2 2]] 0th column: [1 5 7] 1st row: [5 6 8] """ المزيد من الأمثلة: #i:j:k #i فهرس البداية #j فهرس التوقف #k الخطوة x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) x[1:7:2] #array([1, 3, 5]) x[-2:10] #array([8, 9]) x[-3:3:-1] #array([7, 6, 5, 4]) x[5:] #array([5, 6, 7, 8, 9]) x = np.array([[[1],[2],[3]], [[4],[5],[6]]]) x.shape #(2, 3, 1) x[1:2] """array([[[4], [5], [6]]]) """ x[...,0] """ array([[1, 2, 3], [4, 5, 6]]) """ 1 اقتباس
السؤال
Fahmy Mostafa
لنفترض أن لدي المصفوفة التالية:
عندما أستعمل arr[n] أحصل على صف بالكامل، [1, 2] مثلًا، كيف يمكنني أن أصل إلى أول خانة في كل عمود وأحصل على [1, 3, 5]؟ وهل هذا الأمر (إستخدام الأعمدة بدلًا من الصفوف) يؤثر على أداء السكريبت؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.