在Python中将复杂值赋给Int数组
各位。我想创建一个大小为1x1000的随机数组,它将包含0到3的随机整数。然后我想在二维笛卡尔平面的不同位置分配这些数字。我使用实轴和虚轴作为x轴和y轴。当我尝试将其分配给1j或-1j时,我收到一条错误消息: TypeError无法将复数转换为浮点 你能帮我吗在Python中将复杂值赋给Int数组,python,arrays,complex-numbers,Python,Arrays,Complex Numbers,各位。我想创建一个大小为1x1000的随机数组,它将包含0到3的随机整数。然后我想在二维笛卡尔平面的不同位置分配这些数字。我使用实轴和虚轴作为x轴和y轴。当我尝试将其分配给1j或-1j时,我收到一条错误消息: TypeError无法将复数转换为浮点 你能帮我吗 import numpy as np from math import * M = 4 N = 1000 firstsymbols = np.random.randint(M, size=N) symbols = np.zeros(N
import numpy as np
from math import *
M = 4
N = 1000
firstsymbols = np.random.randint(M, size=N)
symbols = np.zeros(N)
for i in range(1,N):
if (firstsymbols[i] == 0):
symbols[i] = 1
elif (firstsymbols[i] == 1):
symbols[i] = 1j
elif (firstsymbols[i] == 2):
symbols[i] = -1
else:
symbols[i] = -1j
print(symbols)
您可以通过广播创建复数的numpy数组
或者您可以保留一个2D数组,其中第一列是实部,第二列是虚部。问题在于您有一个dtype float的NumPy数组;您试图将复数分配到只能使用浮点的插槽中。在创建带零的数组时,只需使用复数而不是浮点数据类型。我将符号分为实矩阵和虚矩阵。当我把它们结合起来时,它就起作用了
1j * np.arange(10)