Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中将复杂值赋给Int数组_Python_Arrays_Complex Numbers - Fatal编程技术网

在Python中将复杂值赋给Int数组

在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

各位。我想创建一个大小为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)

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)