以下代码将数组的一部分乘以一个数字:
第二次调用会生成一个警告。
问题是,什么是最符合Python风格的方式,可以将numpy数组的部分与复杂/实数相乘而不影响数据类型? 我并不想从一开始就将数组转换为复数,但程序原则上可以获得复杂输入。
编辑:
我不在意复制整个数组,将其转换为复数; 但我想避免检查数据类型(即np.float32、np.float64、np.complex、np.int等)。
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
问题是,什么是最符合Python风格的方式,可以将numpy数组的部分与复杂/实数相乘而不影响数据类型? 我并不想从一开始就将数组转换为复数,但程序原则上可以获得复杂输入。
编辑:
我不在意复制整个数组,将其转换为复数; 但我想避免检查数据类型(即np.float32、np.float64、np.complex、np.int等)。