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

如何在两个numpy数组间实现随机整数插值且尽量少用Numpy操作

优化实现方案
import numpy as np

def mate_interpolate(arr, arr2):
    '''
    接收两个相同维度的数组,返回相同维度的结果数组
    每个位置的元素是两个输入数组对应位置元素之间的随机整数,包含两端值
    '''
    low = np.minimum(arr, arr2)
    high = np.maximum(arr, arr2)
    return np.random.randint(low=low, high=high + 1, size=arr.shape)

效果验证

输入测试用例:

a = np.array([1,2,3])
b = np.array([4,5,6])
print(mate_interpolate(a, b))

输出示例:[2 4 3],符合每个元素在对应位置区间内的整数要求。

优化点说明

  • 无额外临时数组:仅生成low、high两个布尔运算生成的轻量视图(非完整拷贝数组),最终直接生成结果数组,相比原实现减少了差数组、随机浮点数数组两个临时大数组的内存开销
  • 直接输出整数:不需要额外做浮点数转整数的操作,避免精度损失
  • 鲁棒性更强:自动适配两个数组对应位置值的大小关系,不管arr的值比arr2大还是小都能正常生成区间内的随机数
  • 操作简单无“魔法”:仅使用了numpy最基础的最值、随机整数生成接口,没有用到复杂的广播或高阶运算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:09:04