Python实现数组正负元素分别按最大、最小值除法并保持形状
解决方案
完全可以在保持数组原有形状的前提下完成这个操作,用NumPy就能轻松实现(假设你的数组是NumPy数组,这也是处理这类多维数组的常用工具):
先计算数组的全局最大值和最小值:
max_val = A.max() min_val = A.min()复制原数组避免修改原始数据,再通过布尔索引分别处理正负元素:
import numpy as np # 复制原数组,形状与原数组完全一致 processed_A = np.copy(A) # 对所有正值执行除以最大值的操作 processed_A[A > 0] /= max_val # 对所有负值执行除以最小值的操作 processed_A[A < 0] /= min_val
处理完成后,processed_A的形状和原数组A完全相同,同时满足你对正负值的归一化要求。如果你的数组是普通Python列表,建议先转换成NumPy数组再操作,效率会大幅提升。
内容的提问来源于stack exchange,提问作者may7even
相关产品推荐
相关产品推荐

