发布于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.arange
或np.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黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系z452as@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!