+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

定义3d numpy数组,其范围为列式格式

发布于2021-01-17 16:22     阅读(445)     评论(0)     点赞(13)     收藏(0)


0

1

2

3

4

5

6

7

我想定义一个3d numpy数组,其形状为[[3,3,5],并且也以列方式将值的范围设置为以11和step = 3开头。我的意思是:

B[:,:,0] = [[ 11,  20,  29],
            [ 14,  23,  32],
            [17,   26,  35]]

B[:,:,1] = [[ 38,  ...],
            [ 41,  ...],
            [ 44,  ...]]
...

我是新来numpy的,我怀疑有这样做np.arangenp.mgrid可能。但我不怎么做。

如何用最少的代码行来完成?


解决方案


您可以通过将形状乘以台阶并加上起点来计算范围的终点。然后,只需重新塑形并转置即可移动该列:

start = 11
step = 3
shape = [5, 3, 3]

end = np.prod(shape) * step + start

B = np.arange(start, end, step).reshape([5, 3, 3]).transpose(2, 1, 0)
B[:, :, 0]

# array([[11, 20, 29],
#        [14, 23, 32],
#        [17, 26, 35]])

0

1

2

3

4

5

6



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/777225/6341705ea55f81f39414/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

13 0
收藏该文
已收藏

评论内容:(最多支持255个字符)