Pab*_*Rbl 7 python arrays numpy
假设我有一个n × m数组,即:
array([[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.]])
Run Code Online (Sandbox Code Playgroud)
我要生成一个 3D 数组k × n × m,其中新轴中的所有数组都相等,即:相同的数组但现在3 × 3 × 3。
array([[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.]],
[[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.]],
[[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.]]])
Run Code Online (Sandbox Code Playgroud)
我怎么才能得到它?
在开始时引入一个新轴并用None/np.newaxis复制它np.repeat。这应该适用于将任何n暗淡阵列扩展到n+1暗淡阵列。实施将是 -
np.repeat(arr[None,...],k,axis=0)
Run Code Online (Sandbox Code Playgroud)
样品运行 -
In [143]: arr
Out[143]:
array([[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.]])
In [144]: np.repeat(arr[None,...],3,axis=0)
Out[144]:
array([[[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.]],
[[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.]],
[[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.]]])
Run Code Online (Sandbox Code Playgroud)
View-output 为了记忆效率
我们还可以生成3D视图并使用np.broadcast_to. 更多信息 - here。因此,简单地做 -
np.broadcast_to(arr,(3,)+arr.shape) # repeat 3 times
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2008 次 |
| 最近记录: |