【发布时间】:2017-10-03 23:20:16
【问题描述】:
扩展和填充 python numpy 数组的最简单方法是什么?最初的numpy数组是:
[[1,3], [1,2], [1,5]]
展开后的数组应该是:
[[1,3,9,27], [1,2,4,8], [1,5,25,125]]
新添加的列是第二列的平方和立方值。
谢谢!
【问题讨论】:
扩展和填充 python numpy 数组的最简单方法是什么?最初的numpy数组是:
[[1,3], [1,2], [1,5]]
展开后的数组应该是:
[[1,3,9,27], [1,2,4,8], [1,5,25,125]]
新添加的列是第二列的平方和立方值。
谢谢!
【问题讨论】:
使用a[:,[1]] 分割第二列,使用broadcasting 执行电源操作**[2,3],因为我们保留了尺寸,然后使用np.c_ 将输出堆叠为新列(其中之一堆叠方式)。
因此,实现 -
np.c_[a,a[:,[1]]**[2,3]]
样本输出 -
In [902]: np.c_[a,a[:,[1]]**[2,3]]
Out[902]:
array([[ 1, 3, 9, 27],
[ 1, 2, 4, 8],
[ 1, 5, 25, 125]])
【讨论】:
您只需跳过每一行中的 1,然后使用广播形成所需的笛卡尔积。
import numpy as np
a = np.array([[1,3], [1,2], [1,5]])
b = a[:, 1:] ** np.arange(4)
print(b)
输出
[[ 1 3 9 27]
[ 1 2 4 8]
[ 1 5 25 125]]
【讨论】: