質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

661閲覧

ndarray: 含まない要素だけを残す

Lily_1007

総合スコア35

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/07/06 12:11

前提・実現したいこと

SIGO_idx = np.array([135 143 144 146 157 158 164 188 197 215 248 255 257 263 280])
halo100_indices = np.array([135 143 144 146 157 158 164 188 197 215 248 255 257 263 280 286 287 306 314 318 322 330 338 344 348 349 357 364 366 370 372 376 378 392 400 403 404 406 411 421 451 456 462 471 473 479 480 487 494 496 501 509 523 530
539 542 555 561 585 590 597 606 609 616 625 626 643 644 647 655 657 664
666 667 677 682 690 691 692 693 695 697 698 701 707 708 713 724 726 733
736 737 738 740 741 744 746 748 749 752 760 761 762 773 774 779 780 784
786 787 789 791 800 802 803 804 809 813 817 824 826])

という二つのndarrayが存在します。SIGO_idxの全ての要素はhalo100_indicesに含まれております。halo100_indicesからSIGO_idxに該当する要素だけを削除して
noSIGO_indices = np.array([286 287 306 314 318 322 330 338 344 348 349 357 364 366 370 372 376 378 392 400 403 404 406 411 421 451 456 462 471 473 479 480 487 494 496 501 509 523 530
539 542 555 561 585 590 597 606 609 616 625 626 643 644 647 655 657 664
666 667 677 682 690 691 692 693 695 697 698 701 707 708 713 724 726 733
736 737 738 740 741 744 746 748 749 752 760 761 762 773 774 779 780 784
786 787 789 791 800 802 803 804 809 813 817 824 826])
を得るコードを作成しました。

発生している問題・エラーメッセージ

以下のように作成しました。

該当のソースコード

Python

1noSIGO_indices = halo100_indices[~(halo100_indices in SIGO_idx)] 2print(noSIGO_indices[0:10])

エラーメッセージは以下の通りです。

File "noSIGO_catalog.py", line 212, in <module> for i in noSIGO_indices[0:10]: IndexError: invalid index to scalar variable.

調べても改善方法が分からなかったのでこちらにて質問させて頂きました。よろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

python3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

noSIGO_indices = np.setdiff1d(halo100_indices, SIGO_idx)

で、halo100_indicesからSIGO_idxに含まれる要素を消すことができます。

要素を省略していますが、以下を実行すると、

import numpy as np SIGO_idx = np.array([135,143,144]) halo100_indices = np.array([135,143,144,824,826]) noSIGO_indices = np.setdiff1d(halo100_indices,SIGO_idx) print(noSIGO_indices)

以下の結果になります。

[824 826]

投稿2021/07/06 12:19

編集2021/07/06 12:21
nnkkmto

総合スコア175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lily_1007

2021/07/06 12:24

NumPyの集合関数について,そもそも存在を知りませんでした。。。 誠にありがとうございます!ベストアンサーに選ばせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問