科学の箱

科学・IT・登山の話題

Python

配列のインデックス

投稿日:

インデックスとは配列に対して[]で要素を抜き出す方法である。

マニュアルは以下になる。

インデックスの方法としては以下がある。

  • 整数値を使ったインデックス
  • スライスを使ったインデックス
  • 配列を使ったインデックス
  • ブーリアンインデックス

整数値を使ったインデックス

[N]のように[と]の間に整数値Nを指定したインデックスである。例えば一次元の配列であればこれはN番目の要素を抜き出す。

要素を一つだけ抜き出す最も基本的となるインデックス操作をしてみる。

import numpy as np
x = np.arange(10)
print(x)
# [0 1 2 3 4 5 6 7 8 9]

 

print(x[0])
# 0
print(x[3])
# 3

 

またマイナスの値を指定すると、右端からのインデックスとなる。

 

print(x[-2])
# 8

 

numpy.ndarrayでは多次元配列に対してもインデックスを実行できる。

x.shape = (2,5) 
print(x)
#[[0 1 2 3 4]
 [5 6 7 8 9]]

print(x[1])
#  [5 6 7 8 9]

print(x[1,2])
# 7

print(x[1][2])
# 7

 

スライスを使ったインデックス

スライスは3つのフォーマットがある。

  • i:j:k ー  iは開始位置、jは終了位置、kはステップ
  • i:j - iは開始位置、jは終了位置, ステップは1となる
  • i: - iは開始位置、終了位置は配列の最後の位置、ステップは1となる
  • :j - 開始位置は配列の開始位置、jは終了位置、ステップは1
import numpy as np
x = np.arange(10)
# [0 1 2 3 4 5 6 7 8 9]

print(x[1:5:2])
# [1 3]

print(x[2:6])
# [2 3 4 5]

print(x[3:])
# [3 4 5 6 7 8 9]

print(x[:7])
# [0 1 2 3 4 5 6]

 

配列を使ったインデックス

インデックスには配列を指定することもできる。便利である反面、コードが読みにくくなる可能性がある。複雑になりすぎるようなら別の方法を試すほうが良い。

  • インデックスに使う配列はint型であること
  • インデックスにより戻される配列は本体である、つまり書き換えができる。
import numpy as np
x = np.arange(0,20,2)
print(x)
# [ 0  2  4  6  8 10 12 14 16 18]

print(x[np.array([3,3,8,2,9])])
# [ 6  6 16  4 18]

 

ブーリアン型インデックス

ブーリアン型インデックスは対象となる配列と同じ形状(shape)を持つ配列であり要素はTrueもしくはFalseのBoolean型である。要素に紐づくインデックスがTrueの場合のみ値が戻される。整数値、スライス、配列を使ったインデックスとは異なり柔軟に要素を抜き出すことができる。

b=x>6
print(b)
# [False False False False  True  True  True  True  True  True]

print(x[b])
[ 8 10 12 14 16 18]

print(x[np.array([True, False, True, False, True, True, False, True, False, True])])
# [ 0  4  8 10 14 18]

 

メタ情報

inarticle



メタ情報

inarticle



-Python
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

model.coef_の確認

重回帰分析で重みを確認するには下記を利用する。 model.coef_ ただしこれだと有効桁数が分かりにくいので有効桁数を3桁にして、さらに指数を展開する。 np.set_printoptions(p …

no image

kaggle Titanic Tutorial – 11

kaggleで人気があるlightGBMをつかってみる。   インストール pip install lightgbm 特に問題がなく終了。 コード、関係するところだけ記載。 split_be …

no image

pythonでpostgresqlを使うときに必要なモジュール

pip install psycopg2-binary Related posts:pythonでsha3をつかうpipインストールでエラーが出る場合Pillowのインストールは成功しているのにエラー …

no image

生成した配列をグラフで確認

生成した配列を可視化するためにはmatplotlibが利用できる。 ここでは簡単に可視化するための使い方を見てみる。 まずはnumpyとmatplolibモジュールを読み込む。以下ではnumpyはnp …

no image

PythonでMicrosoft Visual C++ 14.0 is required エラーが出た場合

Visual Studio 2017だけでは不十分である。   https://visualstudio.microsoft.com/ja/downloads/から下記のリンク経由でBuil …

2019年9月
« 8月   10月 »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

side bar top



最近の投稿

アーカイブ

カテゴリー