てつふみはブログ

プログラミングなどの失敗記録

【Numpy】インデックスに浮動小数点が使える

実はnumpyのインデックス指定は、float型(浮動小数点)も使えました! ってお話。

自動で型変換してくれていました。。。

こんな時はエラーを返してほしいよね…。

まぁ、変数管理のできていなかった俺が悪いんだけど。

 

以下、詳細

 

numpyはインデックス指定でデータを取り出せる。

import numpy

array = numpy.arange(9).reshape([3,3])

print(array)

>>  numpy.array([[0,1,2]

                         ,[3,4,5]

                         ,[6,7,8]])

print(array[1,2])

>>  5

 こんな感じ。

リストでも

list = [0,1,2,3,4,5]

print(list[2])

>>  2

って機能が あるけど、それと同じような使い方ができる。

 

で、リストの場合、

list[2.3]

みたいにするとエラーが出る。インデックスにfloat型は指定できませんと。

でも、numpyの場合…

array[2.3]     ・・・  (1)

array[2]             ・・・  (2)

array[int(2.3)]    ・・・  (3)

 とすると、インデックスは自動で型変換がされる。つまり、(1)と(2)と(3)の結果は同じ!!!

小数点は切り捨てられる。

 

今回は、このために期待した結果が出ず、悩んでしまった・・・。