• 0

كيفية المرور على أعمدة مصفوفة Numpy؟

لنفترض أن لدي مصفوفة x * z . أريد أن أمرر كل عمود من هذه المصفوفة إلى دالة لأداء بعض العمليات على العمود بأكمله. كيف يمكنني المرور على أعمدة المصفوفة من خلال حلقة for؟

أي ما أريد فعله كالتالي:

import numpy as np
arr = np.array([[21. , 12.3, 33. ],
       [ 9. ,  1.4, 53.5],
       [23. ,  1. , 71. ]])
for col in arr:
  fun(col)	# يتم تمرير كل عمود إلى الدالة

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

فقط قم بالمرور على مصفوفة المنقول وتمريرها :

import numpy as np    
array = np.array([[1, 2, 7],[4,3,1]])
array
"""
array([[1, 2, 7],
       [4, 3, 1]])
"""
# الآن نريد تمرير الأعمدة للتابع
for column in array.T:
   print (column)
"""
[1 4]
[2 3]
[7 1]
"""
# وبالتالي
for column in array.T:
   fun (column)

أو من خلال np.hsplit:

for column in np.hsplit(array, array.shape[1]):
    print(column)
# أي سيتم تمريرهم بالشكل
"""
[[1]
 [4]]
[[2]
 [3]]
[[7]
 [1]]
"""
# وبالتالي
for column in np.hsplit(array, array.shape[1]):
    fun(column)

 

تمّ تعديل بواسطة Ali Haidar Ahmad
1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

يمكنك استخدام الدالة zip لتنفيذ المطلوب

for col in zip(*array):
   some_function(col)

ويمكنك أيضاً استخدام ال indexing 

لاحظ المثال التالي 

 for col in range(arr.shape[1]):
    some_function(arr[:,col])


[1 2 3 4]
[99 14 12 43]
[2 5 7 1]

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن