numpy は、Python で一般的に使用される数学演算ライブラリであり、強力な配列演算と数値計算関数を提供します。ただし、numpy のバージョンは常に更新されているため、ユーザーが適切なバージョンをどのように選択するかが重要な問題となっています。適切な numpy バージョンを選択すると、データ サイエンス ワークフローが最適化され、コードの保守性と可読性が向上します。この記事では、numpy バージョンの選択方法を紹介し、読者の参考として実際のコード例を示します。
1. numpy のさまざまなバージョンの特徴を理解する
numpy ライブラリは非常に迅速に更新され、最新バージョンは 1.21.2 です。 numpy を使用する場合、異なるバージョン間の変更点と特性を理解することは、適切な numpy バージョンを選択し、コードの効率と保守性を向上させるのに役立ちます。 numpy の主なバージョンには、1.11、1.12、1.13、1.14、1.15、1.16、1.17、1.18、1.19、1.20、1.21 があります。異なるバージョン間の主な変更点は次のとおりです。
バージョンの機能
1.11 - np.random.choice
および np.random.permutation
関数の導入
np.histogramdd
Functionnp.isclose
Function np.matmul
Functionnp.loadtxt
およびnp.genfromtxt
Function np.piecewise
Functionnp.stack#の導入##Function
Function
Function
関数と
np.bincount 関数
1.19 - の導入function
function
function
1.20 - の導入function
関数を追加しました。
関数のパフォーマンスを向上しました。
1.21 - Function
rcondParameters
Function
Function
!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 をインストールすることを意味します。読者は、インストールする適切なバージョン番号を選択できます。彼らのニーズに応じて。
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 のブロードキャスト関数は、異なる形状の配列間で数学的計算を実行できる非常に強力なツールです。ブロードキャスト ルールにより、一部の計算が非常に簡単になります。異なる形状の 2 つの配列を追加する例を次に示します。
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 を列ベクトルとして扱い、それらを
aarray に追加します。 。ブロードキャスト メカニズムにより、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的强大功能。
以上がデータ サイエンス ワークフローを最適化するために適切な numpy バージョンを選択する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。