我是
numpy
的新手,我正在尝试将 和 numpy.ndarray
元素转换为小写。我有一个数组(打印后)如下:
[247.5 247.5 247.5 247.5 247.5 247.5 247.5 247.5 49.5 247.5 247.5 495
3019.5 nan nan nan nan nan nan nan nan nan nan nan
'Total Bill' nan 247.5 247.5 247.5 742.5 742.5 nan nan nan
nan nan nan nan nan]
其实这是一个数据库系列,我已经转换成
np.array
。
array.shape
是 (39,)
想要转换为小写,以便输出为
[247.5 247.5 247.5 247.5 247.5 247.5 247.5 247.5 49.5 247.5 247.5 495
3019.5 nan nan nan nan nan nan nan nan nan nan nan
'total bill' nan 247.5 247.5 247.5 742.5 742.5 nan nan nan
nan nan nan nan nan]
尝试:
a = np.array([x.lower() if isinstance(x, str) else x for x in arr])
使用
numpy>=2.0
,您可以像这样使用 np.strings.lower
,而不必使用循环
>>> c = np.array(['A1B C', '1BCA', 'BCA1'])
>>> c
array(['A1B C', '1BCA', 'BCA1'], dtype='<U5')
>>> np.char.lower(c)
array(['a1b c', '1bca', 'bca1'], dtype='<U5')
请注意,这仅在 numpy 数组的元素为 string/unicode 数据类型时才有效,但当它们为
object
s 时则无效。