في نومباي، عندما يتم استخدام تعبير الانتقاء [:, None]
مع مصفوفة، يتم تغيير شكل المصفوفة.
لنفترض أن لدينا مصفوفة labels
بشكل (n,)
، حيث تمثل n
عدد العناصر في المصفوفة. عند استخدام labels[:, None]
، يتم تحويل هذه المصفوفة إلى شكل (n, 1)
، حيث يتم إضافة بُعد جديد إلى المصفوفة. البُعد الجديد هو بُعد فردي يحتوي على العناصر السابقة. بمعنى آخر، يتم تحويل كل عنصر في المصفوفة الأصلية إلى مصفوفة فرعية داخل مصفوفة أكبر ببُعد واحد.
-
تمرير المصفوفات في C: استخدام المؤشرات19/03/2024
-
تعلم كيفية جمع وطباعة القيم بلغة Ruby07/02/2024
في السياق الذي تم ذكره في الشيفرة الخاصة بك، يُستخدم labels[:, None]
لتحويل مصفوفة labels
إلى شكل يمكن مقارنته بمصفوفة الفهرس المتعدد الأبعاد التي تُنشأ باستخدام np.arange(num_labels)
، مما يُمكن من إجراء مقارنة مع جميع القيم المحتملة للعلامات وإنشاء مصفوفة جديدة من القيم المناسبة لكل علامة.
المزيد من المعلومات
تعتمد فكرة الاستخدام الشائع لـ [:, None]
في NumPy على فهم الأبعاد والبُعد (dimensions) في المصفوفات. في NumPy، يُمكن للمصفوفات أن تكون متعددة الأبعاد، حيث يمكن للمصفوفة أن تحتوي على بُعد واحد (على سبيل المثال، مصفوفة (n,)
) أو أكثر من بُعد (على سبيل المثال، مصفوفة (n, m)
).
عند استخدام [:, None]
مع مصفوفة في NumPy، يُضاف بُعد إضافي إلى المصفوفة. بمعنى آخر، يتم تحويل المصفوفة من أن تكون بشكل (n,)
إلى أن تكون بشكل (n, 1)
، حيث يُصبح لدينا بُعد جديد بطول 1.
في سياق الشيفرة التي قدمتها، labels[:, None]
يُستخدم لتغيير شكل مصفوفة labels
من (n,)
إلى (n, 1)
، وهذا يعني أن كل عنصر في المصفوفة labels
الأصلية يتم تحويله إلى مصفوفة فرعية تحتوي على هذا العنصر فقط.