python - 用列表填充数组元素
问题描述
我有以下数组:
b=np.zeros((5,5)).astype('int32')
我希望使用以下两个数组使用列表填充上述数组的每个元素:
x=np.linspace(11, 15, 5)
`y=np.linspace(6, 10, 5)`
我正在查看的输出:
`array([[11,6], [11,7], [11,8], [11,9], [11,10]],
[[12,6], [12,7], [12,8], [12,9], [12,10]],
[[13,6], [13,7], [13,8], [13,9], [13,10]],
[[14,6], [14,7], [14,8], [14,9], [14,10]],
[[15,6], [15,7], [15,8], [15,9], [15,10]])`
解决方案
就像@DocDriven 所说,您必须b
先将数组的形状调整为(5, 5, 2)
.
之后,请注意,您可以通过 do 设置一整行值,并y
通过 do设置一整列值。b[row,:,1] = y
x
b[:,col,0] = x
Numpy 还广播形状,这意味着您可以使用 1d 数组来填充 2d 数组;将在一次操作中b[:,:,1] = y
填充所有值,而对值执行相同操作。y
b[:,:,0] = x.reshape((5, 1))
x
简而言之,您只需执行以下操作即可得到您想要的:
b = np.zeros((5, 5, 2)).astype('int32')
b[:,:,1] = y
b[:,:,0] = x.reshape((5, 1))
另一种方法是使用np.meshgrid()
:
b = np.array(np.meshgrid(x, y)).T.astype('int32')
推荐阅读
- vba - 有没有办法让 VBA 代码检查 WINRAR 的两个不同位置
- neo4j - 如何正确编写暴发户脚本?
- java - 摇摆闪烁
- python - 无法为 heroku local 指定运行时
- asp.net - 我如何收听 Dockerized .NET Web 应用程序
- c - 指向字符串的指针数组(指针的基本类型)
- html - 学生科目的 Xampp 数据库
- java - 通过减少列表中的代码/操作数量来优化方法
- python - 如何将 np.int64 转换为 PandasSeries 的 python int64?
- arrays - 将数组转换为哈希,然后添加一个键 => 值并在存在键时递增