ホームページ > バックエンド開発 > Python チュートリアル > numpy バ​​ージョン更新の解釈: 新機能とパフォーマンスの向上

numpy バ​​ージョン更新の解釈: 新機能とパフォーマンスの向上

WBOY
リリース: 2024-01-19 10:11:05
オリジナル
631 人が閲覧しました

numpy バ​​ージョン更新の解釈: 新機能とパフォーマンスの向上

データ サイエンスとディープ ラーニングの継続的な発展に伴い、Python は主流のプログラミング言語の 1 つとして、その科学計算ライブラリ numpy も常に革新を続けています。最近、numpy はいくつかの新機能とパフォーマンスの向上を含む新しいバージョンをリリースしました。この投稿では、numpy の新しいバージョンを詳しく説明し、その重要な機能と改善点をいくつか紹介します。

  1. shuffle 関数の改善

numpy 1.17.0 より前では、shuffle 関数は配列要素をランダムな順序で並べ替えていました。ただし、シャッフル機能の実装は標準のランダム アルゴリズムとは異なるため、特定の状況下ではパフォーマンスに影響を与える可能性があります。 numpy 1.17.0 では、新しいランダム アルゴリズムを使用するようにシャッフル関数が更新され、パフォーマンスとランダム性が向上しました。

次は、numpy 1.17.0 で shuffle 関数を使用する方法を示すサンプル コードです:

import numpy as np

# 创建一个有序数组
arr = np.arange(10)

# 将数组随机排序
np.random.shuffle(arr)

print(arr)
ログイン後にコピー

出力結果:

[2 6 5 7 0 9 3 1 4 8]
ログイン後にコピー
  1. 新しい配列重複排除方法

Numpy バ​​ージョン 1.13.0 では、重複をより速く簡単に処理できる、独自の新しい配列重複排除メソッドが導入されています。以前のバージョンでは、numpy は重複を削除する前に sort 関数を使用して配列を並べ替えていました。ただし、このアプローチでは、大規模な配列を操作する場合にパフォーマンスが低下する可能性があります。 numpy 1.13.0 では、独自の関数はハッシュ テーブル アルゴリズムを使用しており、重複を処理する際のパフォーマンスが向上しています。

以下は numpy 1.13.0 の独自関数の使い方を示すサンプルコードです:

import numpy as np

# 创建一个有重复项的数组
arr = np.array([1, 2, 3, 2, 4, 1, 5, 6, 4])

# 去掉数组中的重复项
arr = np.unique(arr)

print(arr)
ログイン後にコピー

出力結果:

[1 2 3 4 5 6]
ログイン後にコピー
  1. 配列代入の新しい方法

Numpy バ​​ージョン 1.16.0 では、配列の要素をより高速かつ直接的に変更できる新しい配列代入メソッドが導入されました。以前のバージョンでは、numpy は配列の変更にループを使用していたため、パフォーマンスが低下していました。 numpy 1.16.0 では、at 関数が C コードで実装され、パフォーマンスが向上しました。

次は、numpy 1.16.0 での at 関数の使用方法を示すサンプル コードです:

import numpy as np

# 创建一个3x3的数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 使用at函数修改数组元素
np.add.at(arr, [0, 1, 2], 1)

print(arr)
ログイン後にコピー

出力結果:

[[ 2  3  4]
 [ 5  6  7]
 [ 8  9 10]]
ログイン後にコピー
  1. 配列計算の新しい方法

Numpy バ​​ージョン 1.14.0 では、matmul、einsum、tensordot など、いくつかの新しい配列計算メソッドが導入されています。これらのメソッドを使用すると、行列計算やテンソル計算などのタスクを簡単に実行できます。以前のバージョンでは、numpy はこれらのタスクを実行するためにさまざまな関数を使用する必要がありましたが、新しい方法ではより高速かつ簡単になります。

以下は、numpy 1.14.0 で行列計算に matmul 関数を使用する方法を示すサンプル コードです:

import numpy as np

# 创建两个矩阵
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# 使用matmul函数计算矩阵积
c = np.matmul(a, b)

print(c)
ログイン後にコピー

出力結果:

[[19 22]
 [43 50]]
ログイン後にコピー
  1. パフォーマンスの向上

上記の新機能に加えて、numpy の新しいバージョンにはパフォーマンスの改善も含まれています。その中で最も重要な改善点は、配列コピーと配列ビューです。以前のバージョンでは、numpy は配列ビューを作成するために追加のコピー操作を必要としたため、パフォーマンスが低下しました。最新バージョンでは、配列ビューを作成するためのより高速な方法を使用することで、numpy のパフォーマンスが向上しました。また、numpy では転置演算、in1d 関数、sort 関数なども最適化されており、良好なパフォーマンス向上も実現しています。

要約すると、numpy の新しいバージョンには、numpy をより便利かつ効率的にするいくつかの重要な新機能とパフォーマンスの向上が含まれています。大規模な配列を処理したり、データ サイエンスやディープ ラーニングのタスクを実行する必要がある場合は、パフォーマンスと機能を向上させるために、必ず numpy の最新バージョンにアップグレードしてください。

以上がnumpy バ​​ージョン更新の解釈: 新機能とパフォーマンスの向上の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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