gpt4 book ai didi

python - Numpy 数组、花式索引、复数

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:23 28 4
gpt4 key购买 nike

下面的代码将数组的一部分乘以一个数

def mul_by_num(a,b):
a[0:2] *= b


import numpy as np
a = np.ones(5,dtype=np.float64)
mul_by_num(a,1.0)
mul_by_num(a,1j) #Generates a warning (and casts to float!)

第二次调用产生警告

-c:2: ComplexWarning: Casting complex values to real discards the imaginary part

问题是,在不弄乱 dtypes 的情况下,将 numpy 数组的一部分乘以复数/实数的最 pythonic 方法是什么?我真的不想从一开始就将数组转换为复数,但程序原则上可以获得复数输入。

编辑:

我不关心复制整个数组,将其转换为复数;但我想避免检查数据类型(即 np.float32、np.float64、np.complex、np.int 等)

最佳答案

在某些时候您需要将数组转换为复数,否则它将无法保存复数。

将数组转换为复数的最简单方法是添加 0j:

if (np.iscomplexobj(b)):
a = a + 0j
a[0:2] *= b

注意:不是 a += 0j 因为它会尝试就地修改数组,如果它还不是很复杂就不会起作用。

关于python - Numpy 数组、花式索引、复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11965170/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com