a = np.array([a,b,1,2,1,1])
我想将某些数字转换为字符。(1 -〉k)结果如下
[a,b,k,2,k,k]
我写了代码
a = np.where((a == 1), 'k', a)
但是我不能对字符和数字的混合使用where函数。我怎么使用where函数呢?
3lxsmp7m1#
这适用于对象dtype:
a = np.array(['a','b',1,2,1,1], dtype=object) np.where((a == 1), 'k', a)
输出:
array(['a', 'b', 'k', 2, 'k', 'k'], dtype=object)
ryoqjall2#
更改a定义以使其有意义:
a
In [12]: a = np.array(['a','b',1,2,1,1]) In [13]: a Out[13]: array(['a', 'b', '1', '2', '1', '1'], dtype='<U21')
这是一个字符串数组-没有数字;记住这一点,很容易更改字符串'1':
'1'
In [14]: a=='1' Out[14]: array([False, False, True, False, True, True]) In [15]: np.where(a=='1', 'k', a) Out[15]: array(['a', 'b', 'k', '2', 'k', 'k'], dtype='<U21')
或更改“2”:
In [16]: a[a=='2'] = 'k' In [17]: a Out[17]: array(['a', 'b', '1', 'k', '1', '1'], dtype='<U21')
你可以切换到对象数据类型数组来保存字符串和数字。但是要小心。在很多方面这样的数组和列表是一样的。
2条答案
按热度按时间3lxsmp7m1#
这适用于对象dtype:
输出:
ryoqjall2#
更改
a
定义以使其有意义:这是一个字符串数组-没有数字;记住这一点,很容易更改字符串
'1'
:或更改“2”:
你可以切换到对象数据类型数组来保存字符串和数字。但是要小心。在很多方面这样的数组和列表是一样的。