我正在try 将一个数组的内容广播到另一个数组中,如下所示:

A = np.array([[1, 3], [2, 4]])
A_broadcast = np.array([[1, 0, 3, 0], [0, 2, 0, 4], [1, 2, 3, 4]])

我目前的方法是将A_broadcast初始化为np.zeros((3, 4)),并将A的内容分成A_broadcast,每次一行如下:

A_broadcast[::2][0] = A[0]
A_broadcast[1::2][1] = A[1]
A_broadcast[::2][2] = A[0]
A_broadcast[1::2][2] = A[1]

但我得到了这样的错误:ValueError: could not broadcast input array from shape (2,) into shape (4,)这种方法在MatLab中有效,所以我认为类似的方法在这里也适用.这种方法有没有可行的办法?如果没有,我该怎么做才能达到类似的效果呢?

推荐答案

您的2个数组:

In [86]: A = np.array([[1, 3], [2, 4]])
    ...: A_broadcast = np.array([[1, 0, 3, 0], [0, 2, 0, 4], [1, 2, 3, 4]])
  
In [88]: A
Out[88]: 
array([[1, 3],
       [2, 4]])

In [89]: A_broadcast
Out[89]: 
array([[1, 0, 3, 0],
       [0, 2, 0, 4],
       [1, 2, 3, 4]])

空白处:

In [87]: res = np.zeros((3,4),int)

A的第一行进入一个双向交替的正方形:

In [90]: res[::2,::2]=A[0]

In [91]: res
Out[91]: 
array([[1, 0, 3, 0],
       [0, 0, 0, 0],
       [1, 0, 3, 0]])

事实上,我不确定A[0]是不是对它的(2,1)版本.我本可以分析这个 case ,但我只是try 了一下.有时,在互动过程中,try 几种替代方案要比事先在脑海中仔细地想出细节要容易得多.在像NumPy这样的模块的交互会话中很容易体验到这一点.

现在很容易对第二排做同样的事情,

In [92]: res[1:,1::2]=A[1]

In [93]: res
Out[93]: 
array([[1, 0, 3, 0],
       [0, 2, 0, 4],
       [1, 2, 3, 4]])

在您try 时,一次一行地为目标编制索引并没有什么错:

In [94]: res[0,::2]
Out[94]: array([1, 3])

In [95]: res[2,1::2]
Out[95]: array([2, 4])

还可以使用高级索引对这两行进行索引-我们只需使用(2,1)和(2,)数组(或列表等效项)正确地进行广播:

In [96]: res[[[0],[2]],[0,2]]
Out[96]: 
array([[1, 3],
       [1, 3]])

In [97]: res[[[1],[2]],[1,3]]
Out[97]: 
array([[2, 4],
       [2, 4]])

Python相关问答推荐

在IIS中运行的FastAPI-获取权限错误:[Win错误10013]试图以其访问权限禁止的方式访问插槽

仅使用2种 colored颜色 创建热图

尽管进程输出错误消息,subProcess.check_call的CalledProcess错误.stderr为无

如何对行使用分段/部分.diff()或.pct_change()?

当测试字符串100%包含查询字符串时,为什么t fuzzywuzzy s Process.extractBests不给出100%分数?

Python中两个矩阵的自定义Hadamard风格产物

将嵌套列表的字典转换为数据框中的行

如何在Python中按组应用简单的线性回归?

pyramid 内部数组中的连续序列-两极

ambda将时间戳与组内另一列的所有时间戳进行比较

如何比较numPy数组中的两个图像以获取它们不同的像素

沿着数组中的轴计算真实条目

聚合具有重复元素的Python字典列表,并添加具有重复元素数量的新键

数据抓取失败:寻求帮助

Python中绕y轴曲线的旋转

形状弃用警告与组合多边形和多边形如何解决

如何更改groupby作用域以找到满足掩码条件的第一个值?

如何排除prefecture_related中查询集为空的实例?

Polars将相同的自定义函数应用于组中的多个列,

Numpyro AR(1)均值切换模型抽样不一致性