如何创建每个元素数字位数一致的numpy数组
问题解决方法
你的问题根源是生成字符串时没有对数字做固定位数补零处理,调整f-string的格式化规则即可实现需求。
方法1:修改原列表推导式写法
修改格式化规则,给数字部分指定3位宽度、不足补前导零,如果你需要从User_001开始,注意把range的起始值改成1:
import numpy as np # 生成User_001到User_123 a1 = np.array([f'User_{i:03d}' for i in range(1, 124)]) # 如需包含User_000,改成range(124)即可
这里f'{i:03d}'的规则说明:
3表示固定输出3位数字- 前面的
0表示位数不足时用0填充左侧空位 d表示输入为十进制整数
方法2:numpy向量化写法(适合数据量较大的场景)
用numpy原生的字符操作实现,避免Python层循环,性能更高:
import numpy as np nums = np.arange(1, 124) a1 = np.char.add('User_', np.char.zfill(nums.astype(str), 3))
内容的提问来源于stack exchange,提问作者zillur rahman
相关产品推荐
相关产品推荐

