np.broadcast_to使用举例

将数组广播到新的形状
举例说明np.broadcast函数的作用以及如何使用。

例1:将一行四列的数组广播到 四行四列:

import numpy as np
a = np.arange(4).reshape(1,4)
print(a)
print (np.broadcast_to(a,(4,4)))

输出如下:

[[0 1 2 3]]
[[0 1 2 3]
 [0 1 2 3]
 [0 1 2 3]
 [0 1 2 3]]

例2:如果将一行三列的数组广播到四行四列就会报错

"""报错"""
a = np.arange(3).reshape(1,3)
print(a)
print (np.broadcast_to(a,(4,4)))

提示

operands could not be broadcast together with remapped shapes [original->remapped]: (1,3) and requested shape (4,4)

例3:将一行三列的数组广播到四行三列

a = np.arange(3).reshape(1,3)
print(a)
print (np.broadcast_to(a,(4,3)))

成功运行

[[0 1 2]]
[[0 1 2]
 [0 1 2]
 [0 1 2]
 [0 1 2]]

例4:将三行一列的数组广播到四行三列,报错

"""报错"""
a = np.arange(3).reshape(3,1)
print(a)
print (np.broadcast_to(a,(4,3)))

报错如下:

operands could not be broadcast together with remapped shapes [original->remapped]: (3,1) and requested shape (4,3)

例5:将三行一列的数组广播到三行四列,成功

a = np.arange(3).reshape(3,1)
print(a)
print (np.broadcast_to(a,(3,4)))

输出如下:

[[0]
 [1]
 [2]]
[[0 0 0 0]
 [1 1 1 1]
 [2 2 2 2]]

例子6:将一行2列广播到(3, 4,2)

如果广播导(3, 4, 1)就会报错

import numpy as np
a = [1, 2]
# shape = (3, 4, 5)3, 4, 5会报错
b  = np.broadcast_to(a ,(3, 4, 2))
print(b)
print(b.shape)

输出如下

[[[1 2]
  [1 2]
  [1 2]
  [1 2]]

 [[1 2]
  [1 2]
  [1 2]
  [1 2]]

 [[1 2]
  [1 2]
  [1 2]
  [1 2]]]
(3, 4, 2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值