私が行った場合
a = [1, 2, 7]
a - a[-1]
私は得るTypeError: unsupported operand type(s) for -: 'list' and 'int'
ただし、 で構成されたリストb
がnp.float64
あり、次のコードが機能します。
type(b)
# list
b - b[-1]
# array([ 281.04209146, 6.57013103, 0. ])
b
これは、 の数字がでありnp.float64
、 にb
多少キャストされているためだと思いますnp.array
。その後、ブロードキャストが発生します。リスト内のすべての要素が同じ型である必要はないためb[0]
、 string だったらどうなるでしょうか? のオペランド b - b[-1]
は依然としてlist
andだったはずなのに、np.float64
なぜ がb - b[-1]
発生しないのTypeError
ですか?
EDITlist
:とnp.array
は違うと答えた人がいます。まあ、私は知っています。しかし、ありb
ませんnp.array
。のように動作list
していますが、コード スニペットで述べたように、その型はです。
の最小限の作業例を次に示しb
ます。
b
# [1598.717274996219, 1324.245314569733, 1317.6751835362861]
type(b[0])
# numpy.float64