Numpy 配列に特定の行が含まれているかどうかを確認する
Numpy 配列を使用する場合、特定の行が存在するかどうかを確認する必要がある場合があります。配列内で。標準の Python リストとは異なり、Numpy 配列は、そのようなチェックを実行するときに特殊なアプローチを必要とする独自のニュアンスを提供します。
Numpy 配列の違い
Python 配列とは異なり、Numpy 配列は、次の場合に異なる動作を示します。 in 演算子を使用した行の存在のテスト:
<code class="python"># Python Array a = [[1, 2], [10, 20], [100, 200]] [1, 2] in a # True [1, 20] in a # False # Numpy Array a = np.array([[1, 2], [10, 20], [100, 200]]) np.array([1, 2]) in a # True np.array([1, 20]) in a # True (Unexpected)</code>
効率的な方法
Numpy 配列内の行の存在を効率的にチェックするには、次の方法を検討してください。
- .tolist() 変換: Numpy 配列をリストに変換し、リストで in 演算子を使用します:
<code class="python">[1, 2] in a.tolist() # True [1, 20] in a.tolist() # False</code>
- Numpy View: 配列のビューを使用して行の存在を素早く確認します:
<code class="python">any((a[:]==[1,2]).all(1)) # True any((a[:]==[1,20]).all(1)) # False</code>
- Numpy に対するジェネレーター: 各行に対して生成配列の値を取得し、ターゲット行と比較します:
<code class="python">any(([1, 2] == x).all() for x in a) # Stops on first occurrence</code>
- Numpy 論理関数: Numpy 論理関数を使用して比較を実行します:
<code class="python">any(np.equal(a, [1, 2]).all(1)) # True</code>
パフォーマンスに関する考慮事項
これらのメソッドのパフォーマンスは、配列のサイズと構造によって異なります。 300,000 x 3 配列のタイミングをいくつか示します。
early hit: [9000, 9001, 9002] in 300,000 elements: view: 0.01002 seconds python list: 0.00305 seconds gen over numpy: 0.06470 seconds logic equal: 0.00909 seconds late hit: [899970, 899971, 899972] in 300,000 elements: view: 0.00936 seconds python list: 0.30604 seconds gen over numpy: 6.47660 seconds logic equal: 0.00965 seconds
結論
Numpy 配列で行の存在を効率的にチェックするには、 のいずれかを使用することをお勧めします。 tolist()、Numpy ビュー、または Numpy 論理関数メソッド。ジェネレーター メソッドはパフォーマンスのオーバーヘッドが大きいため、使用しないでください。
以上がNumpy 配列に特定の行が含まれているかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...

正規表現を使用して、最初の閉じたタグと停止に一致する方法は? HTMLまたは他のマークアップ言語を扱う場合、しばしば正規表現が必要です...

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版
中国語版、とても使いやすい

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ホットトピック



