python-3.x - 在 3D 阵列中替换 2D 子阵列
问题描述
我有以下 3D 数组(形状 = (3,3,3)):
a = array([[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]]])
现在我想用 2D 数组替换 3D 数组中的第 0 个 2D 层
b = array([[0, 1, 0],
[1, 0, 0],
[0, 0, 1]])
, 这样
a = array([[[ 0., 1., 0.],
[ 1., 0., 0.],
[ 0., 0., 1.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]]])
我可以使用 np.insert(a,0,b,axis=0) 并随后删除 3D 数组中的最后一个 2D 图层,但这似乎并不优雅。
解决方案
import numpy as np
a = np.array([[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]]])
b = np.array([[0, 1, 0],
[1, 0, 0],
[0, 0, 1]])
a[0] = b
a
输出:
array([[[0., 1., 0.],
[1., 0., 0.],
[0., 0., 1.]],
[[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]],
[[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]]])
干杯
推荐阅读
- xamarin.forms - 来自 Xamarin Forms App.OnAppLinkRequestReceived 的 Prism 导航使用
- python - E1101:Super of 没有“追加”成员(无成员)
- sed - 使用确切的字符串删除 bash 中的特定行
- google-apps-script - 如何使用 Google App Script 从 Google Chat Bot 获取用户个人资料图片?
- php - 在phpspreadsheet中合并和居中单元格
- c# - 使用其输入自动下载文件
- python - 如何使用 Pandas 样式器实现类似 Excel 的条件格式?
- html - 根据屏幕分辨率和屏幕大小调整 CSS
- pyspark - pyspark 如何记住内存中的某些内容,例如 mapreduce 中的类属性?
- woocommerce - WooCommerce Zapier 集成连接问题