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

如何基于NumPy字符串数组生成指定规则的哈希数组?

实现NumPy字符串数组的哈希计算

针对你的需求,这里提供几种高效的实现方式,优先推荐NumPy向量化操作(适合大数据量场景):

方法一:向量化字节操作(最优)

利用NumPy的字符编码和字节视图直接提取ASCII值,完全避免Python循环,效率最高:

import numpy as np

A = np.array(['abcd','bcde','cdef'], dtype='U4')
# 将字符串数组编码为ASCII字节数组
A_bytes = np.char.encode(A, encoding='ascii')
# 提取第1、2位字符的ASCII值(对应原字符串索引1和2)
ord1 = A_bytes[:, 1].view(np.uint8)
ord2 = A_bytes[:, 2].view(np.uint8)
# 计算哈希数组B
B = ord1 * 256 + ord2

执行后B的结果为:

array([ 700,  772,  844], dtype=uint16)

对应手动计算的ord('b')*256+ord('c')=98*256+99=700,完全符合预期。

方法二:列表推导式(小数据场景)

如果数组规模很小,用列表推导式更直观易懂:

import numpy as np

A = np.array(['abcd','bcde','cdef'])
B = np.array([ord(s[1]) * 256 + ord(s[2]) for s in A])

这种写法简单直接,但数据量较大时,Python循环的效率会远低于NumPy向量化操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:35:19