نومبي. التعامل مع المصفوفات والمصفوفات


مكتبة البيانات NumPy

NumPy & mdash؛ مكتبة مفتوحة المصدر للغة برمجة Python ، والتي تنفذ عددًا كبيرًا من العمليات للعمل مع المتجهات والمصفوفات والمصفوفات.

غالبًا ما تكون الخوارزميات الرياضية المطبقة في اللغات المفسرة (مثل Python) أبطأ بكثير من تلك المطبقة في اللغات المجمعة (مثل Fortran و C و Java). توفر مكتبة NumPy تطبيقات للخوارزميات الحسابية (في شكل وظائف وعوامل تشغيل) محسّنة للعمل مع المصفوفات متعددة الأبعاد. & nbsp؛
نتيجة لذلك ، فإن أي خوارزمية يمكن التعبير عنها في شكل سلسلة من العمليات على المصفوفات (المصفوفات) وتنفيذها باستخدام NumPy تكون سريعة بما يكفي.

NumPy (NumPy Python) هي مكتبة رياضية أساسية للعمل مع البيانات . تشكل هذه المكتبة أساس مكتبات أخرى للعمل مع التعلم الآلي أو مهام تحليل البيانات (على سبيل المثال ، Pandas (العمل مع البيانات المجدولة) ، SciPy (طرق التحسين والحسابات العلمية) ، < tt> Matplotlib & nbsp؛ (التخطيط)).

نبسب ؛

العمل مع NumPy

لبدء العمل مع مكتبة numpy ، تحتاج إلى استيرادها في بداية البرنامج مثل أي مكتبة أخرى ، استيراد numpy أو نحو ذلك (والذي يستخدم في كثير من الأحيان) استيراد numpy كـ np



نواقل NumPy

المتجه (أو المصفوفة) في NumPy هو مجموعة مرتبة من البيانات المتجانسة.
يمكن الوصول إلى عنصر المتجه من خلال الفهرس الخاص به ، تمامًا كما يحدث في القوائم. كل عنصر من عناصر المتجه له مكانه الخاص ، والذي يتم تعيينه أثناء الإنشاء.
جميع عناصر المتجه لها نفس نوع البيانات ( int ، str ، bool ، إلخ).

إنشاء متجه لإنشاء متجه ، تحتاج إلى استخدام مُنشئ numpy.array (كائن قابل للتكرار).
تشير الأقواس إلى أي كائن قابل للتكرار: tuple ، list ، range () ، إلخ.
نبسب ؛
مثال & nbsp؛
استيراد numpy كـ np استيراد numpy كـ np print (np.array ((1،2،3،4،5))) # متجه من المجموعة print (np.array ([1،2،3،4،5])) # متجه من القائمة print (np.array (range (5))) # متجه من المولد

العمل مع عناصر المتجه العمل مع عناصر المتجه هو نفسه مع عناصر القائمة ، يمكنك الوصول إلى العناصر من خلال فهرسها ، وكذلك إنشاء شرائح.


مثال <جدول> <الجسم>
1
2
3
4
5
6
7 
استيراد numpy كـ np V = np.array ((1،2،3،4)) print (V [0]) # 1 print (V [-1]) # 4 print (V [1: -2]) # [2] طباعة (V [:: 2]) # [1 3]

تحديد عناصر المتجه لتحديد عناصر متجه ، يمكنك استخدام متجه يحتوي على قيم منطقية (تعبيرات). سيتم تحديد عناصر المتجه التي ستكون صحيحًا في المتجه بقيم منطقية.
نبسب ؛

مثال استيراد numpy كـ np V = np.array ([1، -2،3، -4،5]) # حدد أول عنصرين من المتجه طباعة (V [np.array ((صحيح ، صحيح ، خطأ ، خطأ ، خطأ))]) # [1-2] # حدد عناصر ناقلات إيجابية print (V [V & gt؛ 0]) # [1 3 5] # حدد حتى عناصر المتجهات طباعة (V [V٪ 2 == 0]) # [-2 -4]

طرق إنشاء المصفوفات والمصفوفات طرق أخرى مفيدة لإنشاء المصفوفات والمصفوفات.


مثال <جدول> <الجسم>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
أحد عشر
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
ثلاثين
31
32
33
34
35
36
37 
استيراد numpy كـ np # مصفوفة أحادية البعد من الأصفار print (np.zero (5)) # [0. 0.0.0.0.] # مصفوفة ثنائية الأبعاد من الأصفار print (np.zeros ((2، 3))) # [[0. 0.0.] # [0. 0.0.]] # مجموعة ثلاثية الأبعاد من الوحدات print (np.ones ((2،3،4))) # [[1. 1. 1. 1.] # [1. 1. 1. 1.] # [1. 1. 1. 1.]] # # [[1. 1. 1. 1.] # [1. 1. 1. 1.] # [1. 1. 1. 1.]]] # مصفوفة من الأصفار مع بيان النوع طباعة (np.zeros (5، dtype = np.int)) # [0 0 0 0 0] # مصفوفة قائمة على قائمة القوائم print (np.array ([[1،2.0]، [0،0]، (1،3.)])) # [[1. 2.] # [0. 0.] # [1. 3.]] # مصفوفة مليئة بعناصر تقدم حسابي يبدأ من 0 print (np.arange (10)) # [0 1 2 3 4 5 6 7 8 9] # التقدم الحسابي مع الإشارة إلى النوع print (np.arange (2، 10، dtype = np.float)) # [2. 3. 4. 5. 6. 7. 8. 9.] # التقدم الحسابي مع اختلاف غير صحيح print (np.arange (2، 3، 0.1)) # [2. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9] # التقدم الحسابي مع عدد معين من المصطلحات print (np.linspace (1. ، 4. ، 6)) # [1. 1.6 2.2 2.8 3.4 4.]

صفيف عناصر نبسب ؛
الوظيفة & nbsp؛ nonzero (V) & nbsp؛
والنتيجة هي مجموعة من المصفوفات. تتوافق كل مصفوفة مع محور منفصل للمصفوفة الأصلية وتحتوي على فهارس مع عناصر غير صفرية في هذه المصفوفة.
V - & nbsp؛ مصفوفة NumPy أو كائن يشبه المصفوفة.
إرجاع & nbsp؛ Python & nbsp؛ tuple & nbsp؛ ( tuple ) - & nbsp؛ tuple مع مصفوفات من الفهارس لعناصر غير صفرية من المصفوفة الأصلية & nbsp؛ V .
على & nbsp؛
الوظيفة & nbsp؛ count_nonzero (V) & nbsp؛
تعتمد هذه الوظيفة على طريقة & nbsp؛ __ bool __ () & nbsp؛ المضمنة لكائنات Python التي تتحقق مما إذا كانت صحيحة. ويترتب على ذلك أن الوظيفة & nbsp؛ count_nonzero () & nbsp؛ قادرة بالفعل على العمل ليس فقط مع الأرقام ، ولكن أيضًا مع أي كائنات يمكن أن تكون إما صحيحة أو خاطئة.
V - & nbsp؛ مصفوفة NumPy أو كائن يشبه المصفوفة.
ترجع الدالة عدد عناصر الصفيف غير الصفرية على طول المحور المحدد.

صفائف قطرية تسمح لك الوظيفة & nbsp؛ diag (V، k = 0) & nbsp؛ باستخراج قطري من مصفوفة ، وكذلك بناء مصفوفات قطرية من مصفوفات أحادية البعد.
V & nbsp؛ - كائن يشبه المصفوفة أو مصفوفات أو مصفوفات أو قوائم أو مجموعات ثنائية الأبعاد أو أحادية البعد أو أي دالة أو كائن باستخدام طريقة تعرض قائمة أو مجموعة.
k & nbsp ؛ - فهرس القطر (اختياري).
الافتراضي هو k = & nbsp؛ 0 والذي يتوافق مع القطر الرئيسي. قيمة k الموجبة تحرك القطر لأعلى ، والقيمة السالبة تحركه لأسفل.

تقوم الدالة بإرجاع & nbsp؛ array NumPy ( ndarray ) - المصفوفة المحددة قطريًا أو صفيفًا قطريًا من المصفوفة أحادية البعد المحددة.

المصفوفات ثنائية الأبعاد NumPy المصفوفات يتم الوصول إلى عنصر مصفوفة ثنائية الأبعاد عن طريق تحديد إحداثيات العنصر ، أولاً رقم الصف ، ثم رقم العمود. الإحداثيات مفصولة بفواصل. & nbsp؛
يمكن تحويل أي مصفوفة إلى مصفوفة ثنائية الأبعاد باستخدام الدالة reshape ().


مثال <جدول> <الجسم>
1
2
3
4
5
6
7
8 
# وظيفة reshape () تغير شكل المصفوفة دون تغيير بياناتها. x = np.arange (12). إعادة الشكل (3 ، 4) print (x) # [[0 1 2 3] # [4 5 6 7] # [8 9 10 11]] # للوصول إلى عنصر ، حدد إحداثياته ​​مفصولة بفواصل print (x [1، 2]) # 6