python - 在 n 维中扩展 numpy 数组

标签 python arrays numpy

我正在尝试“扩展”一个数组(生成一个在所有维度上按比例增加元素的新数组)。我有一个包含已知数字的数组(我们称它为 X),我想让它(在每个维度上)大 j 倍。

到目前为止,我生成了一个包含更多元素的新数组,然后我使用广播将原始数字插入到新数组中(以固定间隔)。

最后用了linspace来补漏,不过这部分其实和题目没有直接关系。

我使用的代码(对于 n=3)是:

import numpy as np
new_shape = (np.array(X.shape) - 1 ) * ratio + 1
new_array = np.zeros(shape=new_shape)
new_array[::ratio,::ratio,::ratio] = X

我的问题是这不是通用的,我将不得不根据 ndim 修改第三行。有没有办法在我的数组中对任意数量的维度使用这种广播?

编辑:更准确地说,第三行必须是:

new_array[::ratio,::ratio] = X

如果 ndim=2 或

new_array[::ratio,::ratio,::ratio,::ratio] = X

如果 ndim=4

等等。我想避免为 ndim 的每种情况编写代码

附注如果有更好的工具来完成整个过程(例如我不知道的'inner-padding',我会很乐意了解它)。

谢谢

最佳答案

array = array[..., np.newaxis] 将添加另一个维度

This article might help

关于python - 在 n 维中扩展 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55344369/

相关文章:

php - 数组 foreach 循环 PHP

ruby-on-rails - Rails 数组 group_by

python - 逻辑回归 : Unknown label type: 'continuous' using sklearn in python

python - 从元组数组中获取 numpy 数组

python - 设置 tensorflow 舍入模式

python - 遇到端口应用程序阻塞问题

php - Codeigniter - 发布到 Controller 时附加数组项丢失

python - 带有二维数组的 numpy.partition()

python - pyx 模块 : how to make color transparent

python - 右移运算符如何在 python 打印语句中工作?