English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا المقال، سنتعلم كيفية استخدام القوائم المدمجة ومكتبة NumPy لإنشاء مخططات في Python.
المخطط هو هيكل بيانات ثنائي الأبعاد حيث تقع الأرقام وفقًا للسطور والعمود.
هذا المخطط هو مخطط 3x4 ("ثلاثة ضرب أربعة") لأن لديه 3 سطر و4 عمود.
ليس لدى Python نوع مخطط مدمج. ولكن يمكننا اعتبار قائمة القوائم كمخطط. على سبيل المثال:
A = [[1, 4, 5], [-5, 8, 9]]
يمكننا اعتبار هذه القائمة من القوائم كمخطط بقياس 2x3.
قبل أن نكمل هذا المقال، من الضروري أن تفهمقائمة Python。
لنلقي نظرة على كيفية استخدام القوائم المدمجة.
A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] print("A =", A) print("A[1] =", A[1]) # السطر الثاني print("A[1][2] =", A[1][2]) # العنصر الثالث في السطر الثاني print("A[0][-1] =", A[0][-1]) # العنصر الأخير في السطر الأول عمود = []; # قائمة فارغة للمحصول على row في A: عمود.إضافة(row[2]) print("العمود الثالث =", عمود)
当我们运行程序时,输出将是:
A = [[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]] A[1] = [-5, 8, 9, 0] A[1][2] = 9 A[0][-1] = 12 العمود الثالث = [5, 9, 11]
إليك بعض الأمثلة على استخدام المخططات في Python باستخدام القوائم المدمجة.
يمكن استخدام القوائم المدمجة كمخططات لتنفيذ مهام حسابية بسيطة، ولكن يمكنNumPyاستخدام Python هو أفضل طريقة لمعالجة المخططات.
NumPy是用于科学计算的软件包,它支持强大的N维数组对象。在使用NumPy之前,您需要先安装它。有关更多信息,
访问:如何安装NumPy?
如果您使用Windows,请下载并安装Python的anaconda发行版。它带有NumPy以及其他一些与数据科学和机器学习有关的软件包。
一旦安装了NumPy,就可以导入和使用它。
NumPy提供数字的多维数组(实际上是一个对象)。让我们举个实例:
import numpy as np a = np.array([1, 2, 3]) print(a) # 输出: [1, 2, 3] print(type(a)) # 输出:
正如您看到的,NumPy的数组类称为ndarray。
有几种创建NumPy数组的方法。
import numpy as np A = np.array([[1, 2, 3], [3, 4, 5]]) print(A) A = np.array([[1.1, 2, 3], [3, 4, 5]]) # 浮点数组 print(A) A = np.array([[1, 2, 3], [3, 4, 5]], dtype = complex) # 复数数组 print(A)
运行该程序时,输出为:
[[1 2 3] [3 4 5]] [[1.1 2. 3. ] [3. 4. 5. ]] [[1.+0.j 2.+0.j 3.+0.j] [3.+0.j 4.+0.j 5.+0.j]]
import numpy as np zeors_array = np.zeros( (2, 3) ) print(zeors_array) ''' Output: [[0. 0. 0.] [0. 0. 0.]] ''' ones_array = np.ones( (1, 5), dtype=np.int32 ) // dtype print(ones_array) # 输出: [[1 1 1 1 1]]
في هذا السياق، نحن نحدد dtype 32 بت (4 بايت). لذلك، يمكن لل陣列 استخدام القيم من إلى。-2-312-31-1
import numpy as np A = np.arange(4) print('A =', A) B = np.arange(12).reshape(2, 6) print('B =', B) ''' Output: A = [0 1 2 3] B = [[ 0 1 2 3 4 5] [ 6 7 8 9 10 11] '''
了解有关创建NumPy数组的其他方法的更多信息。
上面,我们为您提供了3个示例:两个矩阵相加,两个矩阵相乘以及一个矩阵转置。在编写这些程序之前,我们使用了嵌套列表。让我们看看如何使用NumPy数组完成相同的任务。
我们使用+运算符将两个NumPy矩阵的对应元素相加。
import numpy as np A = np.array([[2, 4], [5, -6]]) B = np.array([[9, -3], [3, 6]]) C = A + B # 元素聪明的加法 print(C) ''' Output: [[11 1] [ 8 0] '''
为了将两个矩阵相乘,我们使用dot()方法。了解有关numpy.dot如何工作的更多信息。
注意: *用于数组乘法(两个数组的对应元素的乘法),而不是矩阵乘法。
import numpy as np A = np.array([[3, 6, 7], [5, -3, 0]]) B = np.array([[1, 1], [2, 1], [3, -3]]) C = A.dot(B) print(C) ''' Output: [[ 36 -12] [ -1 2] '''
我们使用numpy.transpose计算矩阵的转置。
import numpy as np A = np.array([[1, 1], [2, 1], [3, -3]]) print(A.transpose()) ''' Output: [[ 1 2 3] [ 1 1 -3] '''
正如您看到的,NumPy使我们的任务更加轻松。
与列表类似,我们可以使用索引访问矩阵元素。让我们从一维NumPy数组开始。
import numpy as np A = np.array([2, 4, 6, 8, 10]) print("A[0] =", A[0]) # First element print("A[2] =", A[2]) # Third element print("A[-1] =", A[-1]) # Last element
运行该程序时,输出为:
A[0] = 2 A[2] = 6 A[-1] = 10
现在,让我们看看如何访问二维数组(基本上是矩阵)的元素。
import numpy as np A = np.array([[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]]) # First element of first row print("A[0][0] =", A[0][0]) # Third element of second row print("A[1][2] =", A[1][2]) # Last element of last row print("A[-1][-1] =", A[-1][-1])
当我们运行程序时,输出将是:
A[0][0] = 1 A[1][2] = 9 A[-1][-1] = 19
import numpy as np A = np.array([[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]]) print("A[0] =", A[0]) # First Row print("A[2] =", A[2]) # Third Row print("A[-1] =", A[-1]) # Last Row (3rd row in this case)
当我们运行程序时,输出将是:
A[0] = [1, 4, 5, 12] A[2] = [-6, 7, 11, 19] A[-1] = [-6, 7, 11, 19]
import numpy as np A = np.array([[1, 4, 5, 12], [-5, 8, 9, 0], [-6, 7, 11, 19]]) print("A[:,0] =",A[:,0]) # First Column print("A[:,3] =", A[:,3]) # Fourth Column print("A[:,-1] =", A[:,-1]) # Last Column (4th column in this case)
当我们运行程序时,输出将是:
A[:,0] = [ 1 -5 -6] A[:,3] = [12 0 19] A[:,-1] = [12 0 19]
如果您不知道上面的代码如何工作,请阅读本文矩阵部分的切片。
一维NumPy数组的切片类似于列表。如果您不知道列表切片的工作原理,请访问了解Python的切片符号。
让我们举个实例:
import numpy as np letters = np.array([1, 3, 5, 7, 9, 7, 5]) # 3rd to 5th elements print(letters[2:5]) # 输出: [5, 7, 9] # من الاول إلى الرابع print(letters[:-5]) # مخرجات:[1, 3] # من السادس إلى الاخير print(letters[5:]) # مخرجات:[7, 5] # من الاول إلى الاخير print(letters[:]) # مخرجات:[1, 3, 5, 7, 9, 7, 5] # عكس قائمة print(letters[::-1]) # مخرجات:[5, 7, 9, 7, 5, 3, 1]
الآن، دعونا نرى كيف يمكننا قص الماتريكس.
import numpy as np A = np.array([[1, 4, 5, 12, 14], [-5, 8, 9, 0, 17], [-6, 7, 11, 19, 21]]) print(A[:2, :4]) # صفين، أربعة أعمدة ''' Output: [[ 1 4 5 12]] [-5 8 9 0] ''' print(A[:1,]) # الصف الأول، جميع الأعمدة ''' Output: [[ 1 4 5 12 14]] ''' print(A[:, 2]) # جميع الصفوف، العمود الثاني ''' Output: [ 5 9 11] ''' print(A[:, 2:5]) # جميع الصفوف، من العمود الثالث إلى الخامس '''Output: [[ 5 12 14] [ 9 0 17] [11 19 21]] '''
كما ترون، يمكن معالجة الماتريكس بشكل أسهل باستخدام NumPy (بدلاً من القوائم المدمجة) دون أن نلمس الأساسيات. نوصي بدراسة مكتبة NumPy بشكل دقيق، خاصة عند استخدام بايثون في علوم البيانات/التحليل.