python - 将混合数据转换为字符串 numpy
问题描述
我有这个数组:
z = np.array(['43', '65', '41', '47', '46', '73', '99', '52', '56', '23', '07',
'C3', '49', '62', '54', 'A1', '88', '70', '42', 74.0, 20.0, 21.0,
4, 62, 2, 3, 49, 79, '13', 'F4', 'A9', '20', '19', 19.0, 23.0,
70.0, 83, 61, 80, 81, 66, 82, 63, '09', '06', 'F8'], dtype=object)
在这个数组中,我们在一个数组中包含 int、str 和 float。我想将它们全部转换为字符串,但浮点值必须是整数,并且诸如“07”、“09”等值也会变成“7”、“9”。我想要的愿望结果是:
z = np.array(['43', '65', '41', '47', '46', '73', '99', '52', '56', '23', '7',
'C3', '49', '62', '54', 'A1', '88', '70', '42', '74', '20', '21',
'4', '62', '2', '3', '49', '79', '13', 'F4', 'A9', '20', '19', '19', '23',
'70', '83', '61', '80', '81', '66', '82', '63', '9', '6', 'F8'], dtype=object)
我试过这个方法
def col_convert(array):
for i in range(len(array)):
try:
array[i] = str(int(array[i]))
except:
next
return array
但是对于 100 万个元素,这个解决方案非常慢。有没有更快的方法来处理这个任务?
解决方案
尝试:
z1 = np.array([str(i).split('.')[0] for i in z])
更新:根据 OP 的编辑删除前导零:
z1 = np.array([str(i).lstrip('0').split('.')[0] for i in z])
推荐阅读
- nms - 连接丢失或任何异常后的 ActiveMQ 恢复
- python-3.x - Matplotlib X-ticks 没有正确分布
- jenkins - Groovy - Jenkins Pipeline - Groovy CPS 没有通过 .eachLine 方法
- struct - C:访问具有奇数编号的结构时出现地址陷阱错误。成员
- jquery - JQuery 选择符合给定条件的 HTML 元素,并更改其 CSS 样式
- java - spring.controller.pageController 中的字段 statusUpdateService 需要一个无法找到的“service.StatusUpdateService”类型的 bean
- anylogic - 如何模拟运输机的故障(在运输机车队中)?
- flutter - 试图在颤动中检索文件长度,但出现以下异常-“FileSystemException:无法检索文件长度”
- python - 我可以使用来自 TF HUB 的非微调 BERT 模型来为它提供 TF 服务吗?
- safari - ITP - 在没有事先用户交互的情况下阻止网站上的所有第三方 Cookie