python - 矩阵数组,使用 Python 中数组中的值构建

标签 python arrays numpy matrix

这是我的代码。我希望它返回的是一个矩阵数组

[[1,1],[1,1]],[[2,4],[8,16]],[[3,9],[27,81]]

我知道我可能可以使用 for 循环并循环遍历我的向量 k 来做到这一点,但我想知道是否有一种我缺少的简单方法。谢谢!

from numpy import *
import numpy as np

k=np.arange(1,4,1)
print k

def exam(p):
   return np.array([[p,p**2],[p**3,p**4]])

print exam(k)

输出:

[1 2 3]

[[[ 1  2  3]

  [ 1  4  9]]

 [[ 1  8 27]

  [ 1 16 81]]]

最佳答案

关键是玩弄形状和广播。

b = np.arange(1,4) # the base
e = np.arange(1,5) # the exponent

b[:,np.newaxis] ** e
=> 
array([[ 1,  1,  1,  1],
       [ 2,  4,  8, 16],
       [ 3,  9, 27, 81]])

(b[:,None] ** e).reshape(-1,2,2) 
=>
array([[[ 1,  1],
        [ 1,  1]],

       [[ 2,  4],
        [ 8, 16]],

       [[ 3,  9],
        [27, 81]]])

如果您必须将输出作为矩阵列表,请执行以下操作:

m = (b[:,None] ** e).reshape(-1,2,2)
[ np.mat(a) for a in m ]
=>
[matrix([[1, 1],
        [1, 1]]),
 matrix([[ 2,  4],
        [ 8, 16]]),
 matrix([[ 3,  9],
        [27, 81]])]

关于python - 矩阵数组,使用 Python 中数组中的值构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20738104/

相关文章:

python 在后台触发并忘记异步函数

python - 来自 itertools 食谱的成对总是给出与 zip(a, a[1 :])?

Python - 使用utf-8编码读写csv文件

arrays - 部分从另一个数组创建新数组

python - 可以memmap pandas系列。数据框呢?

python - 如何使用大阵列来防止大量使用 RAM?

python - 将 HDF5 用于大型阵列存储(而不是平面二进制文件)是否具有分析速度或内存使用优势?

python - 在 python (Matplotlib) 中使用子图和 imshow 时删除白色边框

javascript - 如何显示(或调用)在 javascript 数组内部定义的匿名函数的内容

c++ - 使用活跃的 NEON 标志编译代码几乎没有任何改进(甚至恶化)