如何用循环在Python中输出经过修改的NumPy数组?
解决方法
你可以先创建一个和输入数组arr_in形状完全一致的空数组,然后在np.ndenumerate的循环中,将计算后的结果赋值到对应索引的位置:
import numpy as np l1 = [2, 1, 5, 2] l2 = [4, 2, 3, 3] arr_in = np.array([l1,l2]) # 创建与原数组形状、数据类型匹配的空数组 arr_out = np.empty_like(arr_in, dtype=int) for idx, value in np.ndenumerate(arr_in): # 执行目标运算 result = value ** 2 + 1 # 将结果赋值到对应索引位置 arr_out[idx] = result print(arr_out) # 输出: # [[ 5 2 26 5] # [17 5 10 10]]
补充提示
虽然np.ndenumerate能实现需求,但NumPy的核心优势是向量化操作——这种方式无需循环,代码更简洁且处理大规模数组时效率更高,完全等价于你的循环逻辑:
arr_out = arr_in ** 2 + 1
内容的提问来源于stack exchange,提问作者Bluetail
相关产品推荐
相关产品推荐

