python - 我想使用 python 中的加法函数从两个长度为 n 的数组创建一个 nxn 矩阵

标签 python arrays matrix append

我有两个数组 n 和 k,我想用公式 n + ik 创建一个矩阵。我希望矩阵具有以下形式;

n[0]+ik[0] n[0]+ik[1] n[0]+ik[2] etc. 
n[1]+ik[0] n[1]+ik[1] n[0]+ik[2] etc. 
etc. 

到目前为止我已经;

z = 0 + 1j

for i,j in n
    for i,j in k 
    n_com = n + k*z 

但我知道它不起作用,而且我意识到它没有任何意义。我必须使用追加吗?

最佳答案

我认为下面的代码很清楚

n = [1, 2, 3]
k = [4, 5, 6]
mat = []
for i in range(len(n)):
    row = []                # ready to make a row
    for j in range(len(k)):
        row.append(n[i] + 1j * k[j])
    mat.append(row)         # add the row to the mat
print(mat)                  # we get it

一种更Pythonic的方式是(如果你有兴趣的话)

mat = [[x + 1j * y for y in k] for x in n]

此外,许多科学人士会使用numpy,当矩阵很大时,您可能会期望更好的性能和可用性。

import numpy as np
n = np.array(n)
k = np.array(k).reshape((-1, 1))
mat = n + k.repeat(len(n), 1) * 1j

关于python - 我想使用 python 中的加法函数从两个长度为 n 的数组创建一个 nxn 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47335305/

相关文章:

python - tf.keras.layers.Input() 和 tf.keras.layers.Flatten() 有什么区别

PHP 从 cookie 中解码 JSON

r - 在矩阵的每个元素上使用max

python - 列表列表的子矩阵(没有 numpy)

python - 在python中对矩阵的值进行排序

python - 从可能的目录列表中获取文件的平面列表的单行程序?

python - 如何将 @tf.function 与 Keras 顺序 API 一起使用?

python - 将字符串转换为位数组

javascript - 将多维数组转换为树状结构

python - 根据匹配值从不同的 Dataframe 更新 Dataframe