首页 > 解决方案 > 如何在numpy中使用ones()获取数字数组?

问题描述

嗨,我在 Matlab 中有一个代码,它生成以下序列。

[ones(1,6*2) 2 ones(1,6*2-1) 2 ones(1,6*2) 1]

ans =

  Columns 1 through 18
     1    1    1    1    1    1    1    1    1    1    1    1    2    1    1    1    1    1

  Columns 19 through 36
     1    1    1    1    1    1    2    1    1    1    1    1    1    1    1    1    1    1

  Columns 37 through 38
     1    1

我想在 Python 中生成类似的数字数组。

我试图生成如下。

ConvStride = [np.ones((12,),dtype=int),2,np.ones((11,),dtype=int),2,np.ones((12,),dtype=int),1]

Ans= [1 1 1 1 1... 1],2,[1 1 1 ... 1],2,[1 1 1 1....1],1

ConvStride = [np.ones((12,),dtype=int),2,np.ones((11,),dtype=int),2,np.ones((12,),dtype=int),1]

必需的

[ 1 1 1 .....1 2 1 1 1 .....1 2 111....1 1]

你能告诉我这里的工作吗?

标签: pythonmatlabnumpy

解决方案


使用np.r_

np.r_[np.ones(12,int),2,np.ones(11,int),2,np.ones(12,int)]
# array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
#        1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])

推荐阅读