Heim >Backend-Entwicklung >Python-Tutorial >So wählen Sie die richtige Numpy-Version aus, um Ihren Data-Science-Workflow zu optimieren
numpy ist eine häufig verwendete mathematische Operationsbibliothek in Python. Sie bietet leistungsstarke Array-Operationen und numerische Berechnungsfunktionen. Da Numpy-Versionen jedoch ständig aktualisiert werden, ist die Art und Weise, wie Benutzer die geeignete Version auswählen, zu einem wichtigen Thema geworden. Die Auswahl der richtigen Numpy-Version kann Ihren Data-Science-Workflow optimieren und die Wartbarkeit und Lesbarkeit Ihres Codes verbessern. In diesem Artikel wird erläutert, wie Sie die Numpy-Version auswählen, und es werden tatsächliche Codebeispiele als Referenz für die Leser bereitgestellt.
1. Verstehen Sie die Eigenschaften verschiedener Versionen von Numpy.
Die Numpy-Bibliothek wird sehr schnell aktualisiert und die neueste Version ist 1.21.2. Bei der Verwendung von Numpy kann uns das Verständnis der Änderungen und Merkmale zwischen verschiedenen Versionen bei der Auswahl der geeigneten Numpy-Version helfen und die Effizienz und Wartbarkeit des Codes verbessern. Zu den Hauptversionen von Numpy gehören 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20 und 1.21. Die wichtigsten Änderungen zwischen verschiedenen Versionen sind:
Versionsfunktionen
1.11 – Einführung der Funktionen np.random.choice
und np.random.permutation
np.random.choice
和np.random.permutation
函数
np.histogramdd
函数np.isclose
函数np.matmul
函数np.loadtxt
和np.genfromtxt
函数np.piecewise
函数np.stack
函数np.moveaxis
函数np.copyto
函数np.count_nonzero
和np.bincount
函数np.compress
函数np.isin
函数np.promote_types
函数np.histogram_bin_edges
函数np.searchsorted
函数np.unique
函数的性能np.linalg.lstsq
函数的rcond
参数np.cell
函数np.format_float_positional
函数从上表可以看出,numpy的每个版本都有不同的变化和优化。在选择numpy版本时,需要结合具体需求和使用场景,选择相应版本。如果需要使用某个新特性或者解决某个特定问题,可以选择较新的版本。如果考虑稳定性和向下兼容性,可以选择较旧的版本。
2.如何更换numpy版本
在Python中,可以使用pip命令安装和更换numpy版本。以下是更换numpy版本的步骤:
!pip list | grep numpy
输出:
numpy 1.19.5
该结果显示当前安装的numpy版本为1.19.5。
# 卸载numpy !pip uninstall -y numpy # 安装新的numpy版本 !pip install numpy==1.20
在代码中numpy==1.20
表示安装1.20版本,读者可以根据需要选择合适版本号进行安装。
3.使用numpy的优化技巧
除了选择合适的numpy版本之外,针对具体的数据科学问题,还可以采用一些numpy的优化技巧,提高代码的效率和可读性。以下是几个实用的numpy优化技巧的示例:
(1) 使用numpy的向量化计算
numpy使得向量化计算变得非常容易。处理大量数据时,使用向量化计算比逐个元素地循环计算更快。以下是一个例子,实现对两个数组的逐个元素求和:
import numpy as np # 生成两个向量 a = np.array([1,2,3,4]) b = np.array([5,6,7,8]) # 使用循环计算元素和 c = np.zeros(len(a)) for i in range(len(a)): c[i] = a[i] + b[i] # 使用向量化计算元素和 d = a + b # 输出结果 print(c) # [ 6. 8. 10. 12.] print(d) # [ 6 8 10 12]
从上例可以看出,使用向量化计算可以大大简化代码,同时提高效率。
(2) 使用numpy的广播功能
numpy的广播(broadcast)功能是一种非常强大的工具,它可以让不同形状的数组之间进行数学计算。广播的规则可以使得一些计算变得非常简单。下面是一个例子,实现两个形状不同的数组的相加:
import numpy as np # 生成两个数组 a = np.array([[ 0.0, 0.0, 0.0], [10.0, 10.0, 10.0], [20.0, 20.0, 20.0], [30.0, 30.0, 30.0]]) b = np.array([1.0, 2.0, 3.0]) # 使用广播计算元素和 c = a + b # 输出结果 print(c)
该代码片段将数字1、2和3视为一个列向量,将其与a
np.histogramdd
-Funktion1.13 – Unterstützung für eine verbesserte Version von UMFPACK eingeführt
np.iscloseFunktion hinzugefügt
np.matmulFunktion
np.loadtxt
- und np.genfromtxt
-Funktionnp .piecewise
hinzugefügtnp.stack
eingeführt > Funktionnp.moveaxis
eingeführtnp.copyto
-Funktionennp.count_nonzero
- und np.bincount
-Funktionen 🎜1.19 – Einführung von np. compress
-Funktion li>np.isin
-Funktion hinzugefügtnp.promote_types
-Funktion 🎜1.20 – Eingeführt np.histogram_bin_edgesFunktion
np.searchsorted
hinzugefügtnp.unique
wurde verbessert > Funktion 🎜1.21 – Einführung Der rcond
-Parameter der np.linalg.lstsq
-Funktionnp.cell
wurde eingeführt > Funktionnp.format_float_positional
import numpy as np # 生成一个数组 a = np.array([[ 0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33], [40, 41, 42, 43]]) # 切片选择子数组 b = a[:, 1:3] # 输出子数组 print(b)🎜Ausgabe: 🎜
[[ 1 2] [11 12] [21 22] [31 32] [41 42]]🎜Das Ergebnis zeigt, dass die aktuell installierte Numpy-Version 1.19.5 ist. 🎜
import numpy as np # 生成一个数组 a = np.array([[ 0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33], [40, 41, 42, 43]]) # 使用索引选择特定元素 b = a[[0, 1, 2, 3], [1, 2, 3, 0]] # 输出选中的元素 print(b)🎜Im Code bedeutet
numpy==1.20
die Installation von Version 1.20 nach ihren Bedürfnissen installieren. 🎜🎜3. Numpy-Optimierungstechniken verwenden🎜🎜Zusätzlich zur Auswahl der geeigneten Numpy-Version können Sie auch einige Numpy-Optimierungstechniken verwenden, um die Effizienz und Lesbarkeit des Codes für bestimmte datenwissenschaftliche Probleme zu verbessern. Hier sind einige Beispiele praktischer Numpy-Optimierungstechniken: 🎜🎜(1) Verwendung der vektorisierten Berechnungen von Numpy🎜🎜Numpy macht vektorisierte Berechnungen sehr einfach. Bei der Arbeit mit großen Datenmengen sind vektorisierte Berechnungen schneller als das Durchlaufen einzelner Elemente. Das Folgende ist ein Beispiel für die Implementierung der elementweisen Summierung zweier Arrays: 🎜[ 1 12 23 30]🎜 Wie aus dem obigen Beispiel ersichtlich ist, kann die Verwendung vektorisierter Berechnungen den Code erheblich vereinfachen und gleichzeitig die Effizienz verbessern. 🎜🎜(2) Verwenden Sie die Broadcast-Funktion von Numpy🎜🎜Die Broadcast-Funktion von Numpy ist ein sehr leistungsfähiges Werkzeug, mit dem mathematische Berechnungen zwischen Arrays unterschiedlicher Form durchgeführt werden können. Rundfunkregeln können einige Berechnungen sehr vereinfachen. Hier ist ein Beispiel für das Hinzufügen von zwei Arrays unterschiedlicher Form: 🎜rrreee🎜Dieser Codeausschnitt behandelt die Zahlen 1, 2 und 3 als Spaltenvektor und fügt ihn jedem der
a
-Arrays hinzu: Füge eine Zeile hinzu auf einmal. Der Broadcast-Mechanismus ermöglicht es Numpy, automatisch abzuleiten, an welchen Achsen Broadcast-Operationen ausgeführt werden sollen, wodurch Berechnungen sehr einfach werden. 🎜🎜(3) Verwenden Sie die Slicing- und Indizierungsfunktionen von Numpy🎜numpy提供了切片和索引的功能,使得对数组中特定元素的访问变得非常方便。例如,如果想要选择数组中的一个子集,可以使用切片:
import numpy as np # 生成一个数组 a = np.array([[ 0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33], [40, 41, 42, 43]]) # 切片选择子数组 b = a[:, 1:3] # 输出子数组 print(b)
该代码片段选择了数组a
中第2列和第3列的所有行作为子数组,结果如下:
[[ 1 2] [11 12] [21 22] [31 32] [41 42]]
除了切片,numpy还提供了强大的索引功能,可以使用它来选择特定的元素或子数组:
import numpy as np # 生成一个数组 a = np.array([[ 0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33], [40, 41, 42, 43]]) # 使用索引选择特定元素 b = a[[0, 1, 2, 3], [1, 2, 3, 0]] # 输出选中的元素 print(b)
该代码片段选择了数组a
中的4个元素,分别是(0,1)、(1,2)、(2,3)和(3,0),结果如下:
[ 1 12 23 30]
4.结语
选择合适的numpy版本和使用优化技巧是提高数据科学工作效率的有效方法。通过与具体的场景结合,使用numpy的向量化计算、广播、切片和索引等优化技巧,能够简化代码、提高效率、降低资源消耗。读者可以基于本文提供的实际代码示例,进一步探索numpy的强大功能。
Das obige ist der detaillierte Inhalt vonSo wählen Sie die richtige Numpy-Version aus, um Ihren Data-Science-Workflow zu optimieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!