科学の箱

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

kaggle Titanic Tutorial – 1

KaggleでTitanic tutorialにチャレンジしてみる。 Titanic: Machine Learning from Disaster https://www.kaggle.com/c/ …

no image

pythonで配列に関係する型

pythonで配列に関連する型は3つある。 list array numpy.ndarray pandas.dataframe list 違っている複数のデータ型を要素として保持できる 多次元配列可能 …

no image

特定のパッケージのためのgitignoreを作成したい

https://gitignore.ioを開く パッケージ名を入力 Createをクリック Related posts:cp932 errorデータ分析で理解しておくべきPythonのデータ構造num …

no image

配列をリストから生成

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

no image

Python + Slack Bot – 2

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

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

side bar top



アーカイブ

カテゴリー