python - numpy شرح




كيفية الوصول إلى عمود ith من مجموعة NumPy متعددة الأبعاد؟ (4)

لنفترض أن لدي:

test = numpy.array([[1, 2], [3, 4], [5, 6]])

test[i] يحصل لي خط إيث من المصفوفة (على سبيل المثال [1, 2] ). كيف يمكنني الوصول إلى عمود ith ؟ (على سبيل المثال [1, 3, 5] ). أيضا ، هل ستكون هذه عملية مكلفة؟


للحصول على العديد من الأعمدة غير المستقلة ، فقط:

> test[:,[0,2]]

سوف تحصل على كولمس 0 و 2


وإذا كنت تريد الوصول إلى أكثر من عمود واحد في كل مرة ، فيمكنك القيام بما يلي:

>>> test = np.arange(9).reshape((3,3))
>>> test
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
>>> test[:,[0,2]]
array([[0, 2],
       [3, 5],
       [6, 8]])

>>> test
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])

>>> ncol = test.shape[1]
>>> ncol
5L

ثم يمكنك تحديد العمود الثاني إلى الرابع بهذه الطريقة:

>>> test[0:, 1:(ncol - 1)]
array([[1, 2, 3],
       [6, 7, 8]])

>>> test[:,0]
array([1, 3, 5])

وبالمثل،

>>> test[1,:]
array([3, 4])

يتيح لك الوصول إلى الصفوف. يتم تناول هذا في القسم 1.4 (الفهرسة) من مرجع NumPy . هذا سريع ، على الأقل في تجربتي. إنه بالتأكيد أسرع بكثير من الوصول إلى كل عنصر في حلقة.





numpy