English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
شكل المجموعة هو عدد العناصر في كل مقياس.
اطبع شكل المجموعات الثنائية -
import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) print(arr.shape)
نتيجة التنفيذ
(2, 4)
النموذج العددي يعود (2, 4)، مما يعني أن هذا المجموع له 2 مقياس، وكل مقياس يحتوي على 4 عناصر.
استخدم ndmin باستخدام القيم 1،2،3،4 لإنشاء مصفوفة تحتوي على 5 أبعاد، وتحقق من قيمة أحدث النطاق هي 4:
import numpy as np arr = np.array([1, 2, 3, 4], ndmin=5) print(arr) print('شكل المصفوفة:', arr.shape)
نتيجة التنفيذ
[[[[[1 2 3 4]]]]] شكل المصفوفة: (1, 1, 1, 1, 4)
العدد الصحيح في كل مؤشر يعكس عدد العناصر في المقياس المطلق.
في المثال السابق، المؤشر 4، قيمتنا 4، لذا يمكن القول أن المقياس الخامس (4 + 1 th) يحتوي على 4 عناصر.
شكل المصفوفة هو عدد العناصر في كل مقياس. من خلال تعديل شكل المصفوفة، يمكننا إضافة أو إزالة أبعاد أو تغيير عدد العناصر في كل مقياس.
تحويل مصفوفة تحتوي على 12 عنصر إلى مصفوفة ثنائية الأبعاد.
النطاق الخارجي سيكون له 4 مصفوفة، كل منها يحتوي على 3 عناصر:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(4, 3) print(newarr)
نتيجة التنفيذ
[[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]]
تحويل مصفوفة تحتوي على 12 عنصر إلى مصفوفة ثلاثية الأبعاد.
النطاق الخارجي سيكون له 2 مصفوفة تحتوي على 3 مصفوفة، كل منها يحتوي على 2 عنصر:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(2, 3, 2) print(newarr)
نتيجة التنفيذ
[[[[ 1 2] [ 3 4] [ 5 6]] [[ 7 8] [ 9 10] [11 12]]]
نعم، طالما أن العناصر المطلوبة للتحويل متساوية في كلا الشكلين.
يمكننا تحويل مصفوفة خطية تحتوي على 8 عناصر إلى مصفوفة د维يمية تحتوي على 4 عناصر في 2 صف، ولكن لا يمكننا تحويلها إلى مصفوفة د维يمية تحتوي على 3 عناصر في 3 صف، لأن هذا سيتطلب 3x3 = 9 عنصر.
حاولت تحويل مصفوفة خطية تحتوي على 8 عنصر إلى مصفوفة د维يمية تحتوي على 3 عناصر في كل مقياس (سيؤدي إلى خطأ):
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(3, 3) print(newarr)
نتيجة التنفيذ
تتبع (أحدث استدعاء أخر): ملف "test.py", سطر 5, في
يمكنك استخدام مقياس 'غير معروف'.
هذا يعني أنك لا تحتاج إلى تحديد رقم دقيق لأحد الأبعاد في طريقة reshape.
تمرير -1 كقيمة، سيفضل لك NumPy حساب هذا الرقم.
تحويل عدد مائة عنصر إلى عدد ثلاثي الأبعاد يحتوي على عناصر 2x2:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(2, 2, -1) print(newarr)
نتيجة التنفيذ
[[[1 2] [3 4]] [[5 6] [7 8]]]
التصفية (Flattening the arrays) تعني تحويل عدد متعدد الأبعاد إلى عدد مائة.
يمكننا استخدام reshape(-1) لتحقيق ذلك.
تحويل عدد إلى عدد مائة
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) newarr = arr.reshape(-1) print(newarr)
نتيجة التنفيذ
[1 2 3 4 5 6]
هناك العديد من الوظائف التي يمكن استخدامها لتغيير شكل عدد flatten أو ravel، وإعادة ترتيب العناصر rot90،flip،fliplr،flipud وما إلى ذلك. هذه الوظائف تعتبر جزءًا متوسطًا أو متقدمًا من NumPy.