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

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

Amer Abdallah

السؤال

لنفترض أن لدي مصفوفة 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)	# يتم تمرير كل عمود إلى الدالة

 

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

Recommended Posts

  • 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
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 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]

 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...