numpy 用不同的数字除正元素和负元素,Python

h22fl7wq  于 2023-01-26  发布在  Python
关注(0)|答案(3)|浏览(116)

我有一个(8864,40)数组A,包含负值和正值。我想用数组A的最大值除以数组A的正值,用数组A的最小值除以数组A的负值。是否可以在保持数组A的形状的情况下做到这一点?如有任何帮助,我们将不胜感激。

rqcrx0a6

rqcrx0a61#

请参见下面的剪辑

A[A > 0] /= np.max(A)
A[A < 0] /= np.min(A)
qij5mzcb

qij5mzcb2#

这个?

np.where(A > 0, A/A.max(), A/A.min())
7cwmlq89

7cwmlq893#

如果是列表,则可以使用列表解析,例如

x = [-2, 1, 3, 0, -4, -1, 0, 5, 2]
y = [i / max(x) if i > 0 else i / abs(min(x)) for i in x]

print(x)
print(y)

产生

[-2, 1, 3, 0, -4, -1, 0, 5, 2]
[-0.5, 0.2, 0.6, 0.0, -1.0, -0.25, 0.0, 1.0, 0.4]

其中数字-+的符号是守恒的。如果不使用abs(),则只能得到正值。
我不太明白这句话
有没有可能做到这一点,同时还保持阵列A的形状?
形状的任何变化都意味着符号?

相关问题