You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对NumPy数组的每个元素进行切片并将结果存储到新的NumPy数组中?

解决NumPy字符串数组批量取最后一个字符的问题

嘿,这个需求很常见,用NumPy自带的向量化字符串操作就能完美实现,完全不用写循环,和你做数值运算的体验一致~

方法1:使用np.char.slice()

这是最直观的方式,直接对数组里的每个字符串执行切片操作,指定start=-1就能截取最后一个字符:

import numpy as np

arr_str = np.array(['10', '100', '301', '23423'])
# 对每个元素取最后一个字符
arr_slice = np.char.slice(arr_str, start=-1)

print(arr_slice)
# 输出: array(['0', '0', '1', '3'], dtype='<U1')

方法2:使用np.char.get()

如果你习惯用索引的方式获取字符,np.char.get()也能实现同样的效果,传入索引-1即可:

arr_slice = np.char.get(arr_str, -1)

为什么这两种方法能行?

NumPy的np.char模块专门提供了向量化的字符串操作,这些函数会自动遍历数组中的每个元素,应用对应的字符串处理逻辑——就像你用arr_str.astype(int) + 5批量做数值运算一样,本质都是NumPy帮你把循环封装好了,既简洁又高效。

而且这种方式扩展性很强,比如你想取每个字符串的最后两位,只要把start=-1改成start=-2就行:

np.char.slice(arr_str, start=-2)
# 输出: array(['10', '00', '01', '23'], dtype='<U2')

内容的提问来源于stack exchange,提问作者abhinit21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 07:32:28