首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python:根据列/行创建填充值的数组

Python:根据列/行创建填充值的数组
EN

Stack Overflow用户
提问于 2015-05-30 01:27:23
回答 4查看 4.7K关注 0票数 2

假设您正在尝试创建一个由值矩阵(numpy数组)表示的合成映像10x10。这个图像有三个被阻塞的部分。在左上角块中,列0-4和行0-4,值为1。右块、列5-9和行0-9将为0。其余区域为0-4列和5-9行,为2。(见附图)

创建这样一个对象的最快方法是什么?我知道您可以创建一个零数组,并迭代地更改每个列中的值,但我也知道这不是一个有效的方法。我假设它只涉及使用np.array生成数组,但我不太确定语法。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-30 03:27:25

我的第一个想法是创建一个0‘空’数组,然后填充12块。例如。

代码语言:javascript
运行
复制
In [145]: C = np.zeros((10,10), int)

In [146]: C[:4,:4]=1

In [147]: C[:4,5:9]=2

In [148]: C
Out[148]: 
array([[1, 1, 1, 1, 0, 2, 2, 2, 2, 0],
       [1, 1, 1, 1, 0, 2, 2, 2, 2, 0],
       [1, 1, 1, 1, 0, 2, 2, 2, 2, 0],
       [1, 1, 1, 1, 0, 2, 2, 2, 2, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])

您还可以创建块(使用np.ones等),并将它们连接起来。hstackvstack只是连接的替代API。但是,在编译后的代码中,级联最终使用了这个初始化和赋值方法。熟悉这两种方法是个好主意。

票数 2
EN

Stack Overflow用户

发布于 2015-05-30 01:48:54

关于,

代码语言:javascript
运行
复制
import numpy as np

a = np.ones((5,5))
b = a*2.
c = np.zeros((10,5))

np.hstack((np.vstack((a,b)),c))
票数 1
EN

Stack Overflow用户

发布于 2015-05-30 01:47:31

这是家庭作业问题吗?和numpy.concatenatenumpy.ones玩一玩,看看你过得怎么样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30541275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档