美文网首页Python小哥哥
原生的 Python 和带广播的 Numpy

原生的 Python 和带广播的 Numpy

作者: 我爱学python | 来源:发表于2019-04-25 16:16 被阅读9次

利用 Python 原生的功能,创建一个二维的 list,变量名称为 x ,其 shape 为 (3,1)

现在我想把它扩展为 (3,4)的二维 list, 并且每列都为 [3, 1, 4],如下所示:

利用 list 的 [] * 4 便可扩展成上面的二维形式

同理,创建一个二维 list ,  变量名称为 y, 其 shape 为 (1, 4)

然后,扩展为 (3,4) 的二维 list

好了,现在二维 list 变量 x, y, shape 变为一样了。

接下来,分别比较它们各自的对应元素,如果 x[i][j] < y[i][j] ,则选择 x[i][j] ,并加 1, 否则,选择 y[i][j], 并减 1,并返回一个对应维度的二维 list. 

实现以上功能,还得至少需要以下 3 行代码,返回结果 result

综上,大概一共需要 7,8 行代码得到想要的结果

如果使用 Numpy 中的函数,可能只需要 1 行,

np.where 第一个参数,意义为判断条件,官方的解释如下,x , y 和 condition 需要是可广播的,并最终传播为某种 shape.

之所以,从文章开头到后面大部分篇幅,都在使用 Python 原生的功能实现与 Numpy 同样的效果,就是为了更好的说明 Numpy 的传播机制。

通过对比,或许更容易明白 Numpy 的传播机制。希望效果真如此吧!

相关文章

  • 原生的 Python 和带广播的 Numpy !

    利用 Python 原生的功能,创建一个二维的 list,变量名称为 x ,其 shape 为 (3,1) In ...

  • 原生的 Python 和带广播的 Numpy

    利用Python 原生的功能,创建一个二维的 list,变量名称为 x,其shape 为(3,1) 现在我想把它扩...

  • Python|Numpy广播

    广播可以简单理解为用于不同大小数组的二进制通用函数(加、减、乘等)的一组规则。 1. 介绍 对于同样大小的数组,二...

  • Python Data Science, NumPy 2

    这篇文章延续Python Data Science, NumPy 1,介绍广播、高级索引以及数组排序。 广播 广播...

  • Python & Numpy Trick

    关于科学计算中Python Numpy 的使用经验。 Numpy 中的广播机制 可以对列进行运算,对行进行运算。 ...

  • numpy库入门

    NumPy NumPy是一个开源的Python科学计算基础库,包含: 一个强大的N维数组对象 ndarray 广播...

  • NumPy的数组对象ndarray

    NumPy NumPy是一个开源的Python科学计算基础库,包含: 一个强大的N维数组对象ndarray 广播功...

  • python:numpy的索引和切片(2)

    接一章 python:numpy的索引和切片(1)python:numpy的索引和切片(1) 1、numpy中数值...

  • numpy.array中的运算

    Python list中使数组中元素翻倍 使用numpy的array来将数组元素翻倍远远快于Python原生lis...

  • numpy的广播

    参考:numpy中的广播机制 - 小舔哥 - 博客园 把数组铺开,扩展之后无法匹配就无法进行广播。 可以广播的条件...

网友评论

    本文标题:原生的 Python 和带广播的 Numpy

    本文链接:https://www.haomeiwen.com/subject/rejzgqtx.html