美文网首页利用Python进行数据分析
使用数组进行面向数组编程

使用数组进行面向数组编程

作者: 庵下桃花仙 | 来源:发表于2019-01-30 11:01 被阅读0次

用数组表达式完成数据操作任务,无需写大量循环。向量化的数组操作会比纯 Python 的等价实现快一到两个数量级。

In [42]:  points = np.arange(-5, 5, 0.01) # 1000 equally spaced points
In [44]: xs, ys = np.meshgrid(points, points) # np.meshgrid 接受两个一维数组,(x,y)对生成一个二维矩阵

In [45]: xs
Out[45]:
array([[-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],
       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],
       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],
       ...,
       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],
       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],
       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99]])

In [46]: ys
Out[46]:
array([[-5.  , -5.  , -5.  , ..., -5.  , -5.  , -5.  ],
       [-4.99, -4.99, -4.99, ..., -4.99, -4.99, -4.99],
       [-4.98, -4.98, -4.98, ..., -4.98, -4.98, -4.98],
       ...,
       [ 4.97,  4.97,  4.97, ...,  4.97,  4.97,  4.97],
       [ 4.98,  4.98,  4.98, ...,  4.98,  4.98,  4.98],
       [ 4.99,  4.99,  4.99, ...,  4.99,  4.99,  4.99]])
In [65]: z = np.sqrt(xs ** 2 + ys ** 2)

In [66]: z
Out[66]:
array([[7.07106781, 7.06400028, 7.05693985, ..., 7.04988652, 7.05693985,
        7.06400028],
       [7.06400028, 7.05692568, 7.04985815, ..., 7.04279774, 7.04985815,
        7.05692568],
       [7.05693985, 7.04985815, 7.04278354, ..., 7.03571603, 7.04278354,
        7.04985815],
       ...,
       [7.04988652, 7.04279774, 7.03571603, ..., 7.0286414 , 7.03571603,
        7.04279774],
       [7.05693985, 7.04985815, 7.04278354, ..., 7.03571603, 7.04278354,
        7.04985815],
       [7.06400028, 7.05692568, 7.04985815, ..., 7.04279774, 7.04985815,
        7.05692568]])

In [67]: import matplotlib.pyplot as plt

In [68]: plt.imshow(z, cmap=plt.cm.gray); plt.colorbar()
Out[68]: <matplotlib.colorbar.Colorbar at 0x1c56b5b3dd8>

In [69]: plt.title("Image plot of $\sqrt{x^2 + y^2}$ for a grid of values")
Out[69]: Text(0.5, 1.0, 'Image plot of $\\sqrt{x^2 + y^2}$ for a grid of values')

In [70]: plt.show()

相关文章

  • 使用数组进行面向数组编程

    用数组表达式完成数据操作任务,无需写大量循环。向量化的数组操作会比纯 Python 的等价实现快一到两个数量级。

  • 第一讲 数组

    数组在我们日常的开发工作中可以说是最常见的了,但是今天我们不讲数组这么使用,我们说一说面向对象编程方式下数组的使用...

  • C语言马拉松_02

    数组 一维数组 C语言编程时会经常使用到数组,因此准确的理解数组是非常必要的。 数组的主要特点就是连续性,使用数组...

  • JavaScrip数组

    JS的数组使用中括号[]进行定界,中括号包裹的区域就是数组的元素。数组元素之间使用逗号隔开 数组创建 数组也有其构...

  • 数组、数组常用方法

    数组的创建 面向对象的方式创建 直接创建 数组还可以嵌套使用 数组和列表相似,都有下标,可以用下标取值 数组的常用方法

  • 数组,循环语句,定时器,闭包

    创建数组 面向对象的方式创建 直接创建(推荐使用,性能更高) 获取数组的成员数量(长度) 数组常用方法 1、获取数...

  • 数组

    一、一维数组 1. 创建一维数组 数组作为对象允许使用new关键字进行内存分配。在使用数组之前,必须首先定义数组变...

  • 第十章_数组和指针

    1. 数组 数组声明 数组初始化 使用const声明数组,数组为只读,不能再修改。 生命数组后如果未进行初始化,数...

  • 用reshape函数对高维数组降纬

    需求:有时进行矢量化编程时,多个大型数组相乘后经常会出现"单位二维数组"变成了"列数组或行数组",即单位二维数组变...

  • Scala基础——数组

    定长数组 数组一般包括定长数组和变长数组,在Scala中使用Array进行声明定长数组注意:scalad的索引标示...

网友评论

    本文标题:使用数组进行面向数组编程

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