科学の箱

科学・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

Python + Slack Bot – 2

Slackのチャネルに投稿するにはChanel IDが必要。 Chanel IDは下記から取得できる。 https://api.slack.com/methods/channels.list/test …

no image

GCP google translatorの利用

こちらが詳しい https://cloud.google.com/translate/docs/reference/libraries#client-libraries-usage-python &n …

no image

dataframe形式で便利なのはいろいろなメソッドが用意されているから

dataframeにすることのメリットは何かといわれると、dataframeにしたとたんに様々な処理をメソッドで実行できるからである。 例えば値がNaNになっていると、処理を進めるうえでいろいろな問題 …

no image

カテゴリデータのビジュアル

カテゴリ別データのビジュアル 参考)https://www.kaggle.com/omarelgabry/a-journey-through-titanic?scriptVersionId=44779 …

no image

配列をリストから生成

配列をリストから生成 numpyにおける配列はnp.arrayを使って生成する。最も基本となる方法はnp.arrayに引数としてリストを渡してやる方法である。 まずは整数の配列を生成してみる。 pri …

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

side bar top



アーカイブ

カテゴリー