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

如何使用Numpy将数组小于5的元素求平方、大于5的元素求立方

实现方案

你可以用np.where一行完成需求,也可以用布尔索引实现,两种方式性能差异不大,按需选择即可。

方法1:使用np.where(代码最简洁)

import numpy as np

# 给定原始数组
arr = np.array([[0, 2, 4, 6],
               [7, 9, 11, 13],
               [14, 16, 18, 20],
               [21, 23, 25, 27]],
               dtype=np.uint64)

# 核心运算:小于5平方,大于5立方,等于5保留原值
result = np.where(arr < 5, arr ** 2, np.where(arr > 5, arr ** 3, arr))

方法2:使用布尔索引(可读性更高)

result = arr.copy()
result[arr < 5] **= 2
result[arr > 5] **= 3

运算结果

array([[    0,     4,    16,   216],
       [  343,   729,  1331,  2197],
       [ 2744,  4096,  5832,  8000],
       [ 9261, 12167, 15625, 19683]], dtype=uint64)

说明

  • 两种方案都是逐元素运算,完全兼容你给定的uint64数据类型
  • 如果你需要修改等于5的元素的处理逻辑,调整对应分支的运算规则即可
  • 数据量较大时两种方案性能基本一致,不需要纠结选择哪一种

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:36:00