numpy 学习汇总15 -广播 ( 基础学习 tcy)
发布日期:2021-06-29 14:47:29 浏览次数:3 分类:技术文章

本文共 1389 字,大约阅读时间需要 4 分钟。

广播  2018/6/19  2018/11/21
===================================================================1.说明:    广播描述了算术运算期间numpy如何处理具有不同形状的数组NumPy使用广播决定处理不同形状阵列; 如算术运算(+, -,*,阵列操作之前广播。    2.规则    1) 两个维度对应相等或是1;不等一方必为1 ;缺失一方必为0;2) 从尾随的维度开始前进,较小的轴展开为较大的轴    3.实例A      (2d array):  3 x 1B      (1d array):  1 x 4   # Result (2d array):   3 x 4    # 不会广播:A      (1d array):  3B      (1d array):  4 #    例子1:    a = np.array([10.0, 20.0, 30.0, 40.0])b = np.array([1.0, 2.0, 3.0])a1=a[:, np.newaxis]#newaxis索引操作符插入一个新的轴a,使其成为一个二维4x1数组    array([[10.],           [20.],           [30.],           [40.]])    a1+b    array([[11., 12., 13.],           [21., 22., 23.],           [31., 32., 33.],           [41., 42., 43.]])===================================================================

 

# 实例2:  numpy.broadcast该函数模仿广播机制,接受两个数组为输入。x=np.array([[1],[2],[3]])y=np.array([4,5,6])b=np.broadcast(x,y)    r,c=b.itersprint(r.__next__(), c.__next__())print(r.__next__(), c.__next__())print(b.shape)c=np.empty(b.shape)print(c.shape)c.flat=[u+v for (u,v) in b]print(c)print(x+y)    # 输出:1 41 5(3, 3)(3, 3)[[7. 6. 7.] [8. 7. 8.] [9. 4. 5.]][[5 6 7] [6 7 8] [7 8 9]]    # 实例3:numpy.broadcast_to(array, shape, subok)函数该函数将数组广播为一个新的shape,返回原数组一个只读视图,是个非连续的,还可能会返回不满足NumPy广播规则的ValueError。    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]]

转载地址:https://chunyou.blog.csdn.net/article/details/84329138 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:numpy 学习汇总16 - Scalar标量的属性方法( 基础学习 tcy)
下一篇:numpy 学习汇总14-多维数组的轴sum(axis) ( 基础学习 tcy)

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月19日 09时15分11秒