int('0'+s)
在字符串前面加上一个零。将其视为一个微型解析步骤。我想不出这不起作用的情况。
这是我的用例:将一个 numpy 字符串数组转换为整数。
def _intStrArray(pos): return int('0'+pos)
np.intStrArray = np.vectorize(_intStrArray)
print(arr)
array([['', '', '', '', '', '', '', '', '', '', '', '', ''],
['', '', '1', '', '', '2', '', '2', '', '', '', '', ''],
['', '2', '2', '', '3', '2', '', '', '2', '', '', '', ''],
['', '2', '', '3', '2', '2', '3', '4', '', '4', '', '', ''],
['', '', '3', '2', '2', '', '', '3', '3', '', '2', '1', ''],
['', '', '', '1', '2', '', '3', '2', '', '', '', '', ''],
['', '', '2', '', '2', '4', '3', '', '2', '1', '', '2', ''],
['', '', '', '', '', '', '2', '', '', '1', '', '1', ''],
['', '', '', '', '', '', '', '', '', '', '', '', '']], dtype=object)
print(np.intStrArray(arr))
array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0],
[0, 2, 2, 0, 3, 2, 0, 0, 2, 0, 0, 0, 0],
[0, 2, 0, 3, 2, 2, 3, 4, 0, 4, 0, 0, 0],
[0, 0, 3, 2, 2, 0, 0, 3, 3, 0, 2, 1, 0],
[0, 0, 0, 1, 2, 0, 3, 2, 0, 0, 0, 0, 0],
[0, 0, 2, 0, 2, 4, 3, 0, 2, 1, 0, 2, 0],
[0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])
在发现我的数据有多么混乱之后,我还添加了一个str()
. 如果数据类型可靠,则这是可选的。
def _intStrArray(pos): return int('0'+str(pos))
np.intStrArray = np.vectorize(_intStrArray)