6

対応する Python データ型に変換したい単一の値 (スカラー) を持つ numpy 配列があります。例えば:

import numpy as np
a = np.array(3)
b = np.array('3')

私はそれらを変換してキャストすることができましintstr

a_int = int(a)
b_str = str(b)

ただし、事前にタイプを知る必要があります。明示的な型チェックなしでa整数と文字列に変換したいと思います。bそれを達成する簡単な方法はありますか?

4

3 に答える 3

0

これにより、型を事前に知る必要なく、 intstrに、strintにキャストされます。これが行うことは、(a/b) に対して(str)または(int)のどちらを呼び出すかを決定することです。インラインの 'a if b else c' は ?: 三項演算子 (おなじみかもしれません) と同等です。

a = '1'
a_res = (str if type(a) == type(1) else int)(a)
print(type(a_res))

b = 1
b_res = (str if type(b) == type(1) else int)(b)
print(type(b_res))

プロデュース:

>>> 
<class 'int'>
<class 'str'>

ご覧のとおり、a と b の両方を変換するために同じコードが使用されます。

于 2013-04-24T13:03:48.730 に答える