2016-08-24 8 views
1

私はPythonが新しく、文字列の配列を数値に変換することに挑戦しています。 私のデータは、数字と文字列のより大きなデータセットから抽出されました。私は「シングル」私は元のデータセットをマスクすることができるように、私は、虚偽または0を持ちたいが存在する基本的ならば、マスクを作成するには、このデータを使用したいnumpy文字列を整数またはブール値に変換する(マスキングのため)

array([b'Single', b'', b'', b'', b'', b'Single', b'Single', 
b'', b'Single', ...]) 

:ように見えます。なぜそこにbがあるのか​​わかりません。

私は、文字列から数字、または文字列からブール値への答えは見つかっていませんが、逆しか返したり、 "数値の文字列"を整数に変換することはできません。

私の最も近い解決策のようなものです:

np.where(modMask = 'Single' [False, True]) 

しかし、その後、私はエラーを取得する:

TypeError     Traceback (most recent call last) 

<ipython-input-64-4ad8a8f10b9b> in <module>() 
----> 1 np.where(modMask = 'Single' [False, True]) 

TypeError: string indices must be integers 
+0

'bool_array = a.astype(object)!= 'Single''を実行できます。例えば、 –

+0

' modMask!= b'Single''? – ayhan

答えて

0

あなたはnumpy.vectorize

import numpy as np 

def f(x): 
    return not x == b'Single' 

vfunc = np.vectorize(f) 
x = np.array([b'Single', b'', b'', b'', b'', b'Single']) 

result = vfunc(x) 

result = [False True True True True False] 
を使用することができます
関連する問題