データ サイエンス ワークフローを最適化するために適切な numpy バ​​ージョンを選択する方法

WBOY
リリース: 2024-01-19 09:23:15
オリジナル
1412 人が閲覧しました

データ サイエンス ワークフローを最適化するために適切な numpy バ​​ージョンを選択する方法

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.histogramddFunction
  • パフォーマンスと安定性の向上
    1.12 - MATLAB 形式ファイルの読み取りおよび書き込みのサポートの導入
  • Structured のサポートの最適化配列
  • 場合によってはパフォーマンスが大幅に向上
    1.13 - UMFPACK の改良版のサポートが導入されました
  • 追加np.iscloseFunction
  • 多項式のサポートの改善
    1.14 - いくつかの廃止された関数とプロパティの削除
  • マルチスレッド計算のサポートの導入 np.matmulFunction
  • ドキュメントの最適化
    1.15 - Pandas の互換性強化の導入
  • 改善np.loadtxtおよびnp.genfromtxtFunction
  • 多次元配列のセグメンテーションおよびスライス操作の改善
    1.16 - ブール型のマスク配列の導入
  • 追加 np.piecewiseFunction
  • パフォーマンスと安定性の向上
    1.17 - np.stack#の導入##Function
  • 構造化配列の新機能を追加
  • ドキュメントとパフォーマンスの最適化
  • 1.18 - 導入
    np.moveaxisFunction
  • 追加
  • np.copytoFunction
  • 改良された
  • np.count_nonzero 関数と np.bincount 関数 1.19 -
    np.compress の導入function
  • 追加
  • np.isinfunction
  • 改善
  • np.promote_typesfunction1.20 -
    np.histogram_bin_edges の導入function
  • np.searchsorted 関数を追加しました。
  • np.unique 関数のパフォーマンスを向上しました。 1.21 -
    np.linalg を導入しました。 lstsqFunctionrcondParameters
  • 導入されました
  • np.cellFunction
  • 導入されました
  • np.format_float_positionalFunction
上記の表からわかるように、numpy の各バージョンには異なる変更と最適化が施されています。 numpy バ​​ージョンを選択する場合は、特定のニーズと使用シナリオに基づいて対応するバージョンを選択する必要があります。新しい機能を使用する必要がある場合、または特定の問題を解決する必要がある場合は、新しいバージョンを選択できます。安定性と下位互換性を考慮する場合は、古いバージョンを選択できます。

2. numpy のバージョンを変更する方法

Python では、pip コマンドを使用して numpy のバージョンをインストールおよび変更できます。 numpy のバージョンを変更する手順は次のとおりです。

    まず、pip list コマンドを使用して、現在インストールされている numpy のバージョンを表示できます。たとえば、次のコマンドを使用して numpy のバージョンを確認します。
  • !pip list | grep numpy
    ログイン後にコピー
出力:

numpy                1.19.5
ログイン後にコピー

結果は、現在インストールされている numpy のバージョンが 1.19.5 であることを示します。

    numpy のバージョンを変更するには、まず現在のバージョンをアンインストールしてから、新しいバージョンをインストールする必要があります。次のコードを使用して、numpy をインストールおよびアンインストールできます:
  • # 卸载numpy
    !pip uninstall -y numpy 
    
    # 安装新的numpy版本
    !pip install numpy==1.20
    ログイン後にコピー
コード内では、

numpy==1.20 はバージョン 1.20 をインストールすることを意味します。読者は、インストールする適切なバージョン番号を選択できます。彼らのニーズに応じて。

3. numpy 最適化テクニックを使用する

適切な numpy バ​​ージョンを選択することに加えて、いくつかの numpy 最適化テクニックを使用して、特定のデータ サイエンスの問題に対するコードの効率と信頼性を向上させることもできます。読みやすさ。以下に、実用的な numpy 最適化手法の例をいくつか示します。

(1) numpy

numpy を使用したベクトル化計算により、ベクトル化計算が非常に簡単になります。大量のデータを扱う場合、要素を 1 つずつループするよりも、ベクトル化された計算の方が高速です。以下は、2 つの配列の要素ごとの合計を実装する例です。

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 はブロードキャスト操作を実行する軸を自動的に推測できるため、計算が非常に簡単になります。

(3) 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート