python - 如何更改现有数组的形状,同时保持内容居中并用 0 填充新空间?
问题描述
我使用这行代码创建了一个 numpy 矩阵:
map = np.random.randint(3, size=(7, 7))
如何将矩阵的形状更改为 9x9 矩阵,同时仍保留矩阵中的内容?我希望内容以 9x9 矩阵为中心。
根据评论请求,这里是一个初始矩阵的示例,后跟所需的输出。
最初的:
[[1 2 1 1 2 2 1]
[1 0 2 2 0 2 0]
[2 0 2 1 1 0 2]
[2 2 2 2 0 1 2]
[1 1 2 1 0 0 1]
[2 2 1 1 1 2 1]
[1 2 0 0 2 2 0]]
输出:
[[0 0 0 0 0 0 0 0 0]
[0 1 2 1 1 2 2 1 0]
[0 1 0 2 2 0 2 0 0]
[0 2 0 2 1 1 0 2 0]
[0 2 2 2 2 0 1 2 0]
[0 1 1 2 1 0 0 1 0]
[0 2 2 1 1 1 2 1 0]
[0 1 2 0 0 2 2 0 0]
[0 0 0 0 0 0 0 0 0]]
如您所见,初始矩阵位于新的 9x9 矩阵的中心。
解决方案
首先创建你的 7x7 矩阵:
map7 = np.random.randint(2, size=(7, 7))
然后,如果您希望 9x9 矩阵中的所有零都使用:
map9 = np.zeros((9,9), dtype=int)
然后将您的矩阵放在新创建的矩阵中
map9[1:8,1:8] = map7
推荐阅读
- gdb - How to make local labels in GNU GAS ELF output that GDB can break on but not count as functions?
- sql - How to SUM via Group By?
- c# - C# Char Array 在特定索引处删除
- cassandra - Cassandra - Composite Partition Keys and Performance
- postgresql - func (rs *Rows) 扫描处理一列类型的数组字符串
- android - How to count total number of rows when limit is added in android sqlite
- anylogic - 更改流体库中的批次颜色
- java - Springboot @ConfigurationProperties 嵌套的 yaml 属性不加载
- python - 对于相同的网络、损失和初始化,TensorFlow 始终实现比 PyTorch 更小的误差
- intellij-idea - IntelliJ IDEA 是否支持 Kotlin 代码样式导入布局?