官网文档:https://www.numpy.org.cn/

Numpy 简介

导入numpy

NumpyPython的一个很重要的第三方库,很多其他科学计算的第三方库都是以Numpy为基础建立的。

Numpy的一个重要特性是它的数组计算。

在使用Numpy之前,我们需要导入numpy包:


from numpy import *

使用前一定要先导入 Numpy 包,导入的方法有以下几种:


import numpy import numpy as np from numpy import * from numpy import array, sin

事实上,在ipython中可以使用magic命令来快速导入Numpy的内容。


%pylab
Using matplotlib backend: Qt4Agg

Populating the interactive namespace from numpy and matplotlib

数组上的数学操作

假如我们想将列表中的每个元素增加1,但列表不支持这样的操作(报错):


a = [1, 2, 3, 4] a + 1
---------------------------------------------------------------------------

TypeError Traceback (most recent call last)

<ipython-input-3-068856d2a224> in <module>()

      1 a = [1, 2, 3, 4]

----> 2 a + 1

TypeError: can only concatenate list (not "int") to list

转成 array


a = array(a) a
array([1, 2, 3, 4])

array 数组支持每个元素加 1 这样的操作:


a + 1
array([2, 3, 4, 5])

与另一个 array 相加,得到对应元素相加的结果:


b = array([2, 3, 4, 5]) a + b
array([3, 5, 7, 9])

对应元素相乘:


a * b
array([ 2, 6, 12, 20])

对应元素乘方:


a ** b
array([ 1, 8, 81, 1024])

提取数组中的元素

提取第一个元素:


a[0]
1

提取前两个元素:


a[:2]
array([1, 2])

最后两个元素:


a[-2:]
array([3, 4])

将它们相加:


a[:2] + a[-2:]
array([4, 6])

修改数组形状

查看 array 的形状:


a.shape
(4L,)

修改 array 的形状:


a.shape = 2,2 a
array([[1, 2],

       [3, 4]])

多维数组

a 现在变成了一个二维的数组,可以进行加法:


a + a
array([[2, 4],

       [6, 8]])

乘法仍然是对应元素的乘积,并不是按照矩阵乘法来计算:


a * a
array([[ 1, 4],

       [ 9, 16]])

画图

linspace 用来生成一组等间隔的数据:


a = linspace(0, 2*pi, 21) %precision 3 a
array([ 0. , 0.314, 0.628, 0.942, 1.257, 1.571, 1.885, 2.199,

        2.513, 2.827, 3.142, 3.456, 3.77 , 4.084, 4.398, 4.712,

        5.027, 5.341, 5.655, 5.969, 6.283])

三角函数:


b = sin(a) b
array([ 0.000e+00, 3.090e-01, 5.878e-01, 8.090e-01, 9.511e-01,

         1.000e+00, 9.511e-01, 8.090e-01, 5.878e-01, 3.090e-01,

         1.225e-16, -3.090e-01, -5.878e-01, -8.090e-01, -9.511e-01,

        -1.000e+00, -9.511e-01, -8.090e-01, -5.878e-01, -3.090e-01,

        -2.449e-16])

画出图像:


%matplotlib inline plot(a, b)
[<matplotlib.lines.Line2D at 0xa128ba8>]

从数组中选择元素

假设我们想选取数组b中所有非负的部分,首先可以利用 b 产生一组布尔值:


b >= 0
array([ True, True, True, True, True, True, True, True, True,

        True, True, False, False, False, False, False, False, False,

       False, False, False], dtype=bool)

mask = b >= 0

画出所有对应的非负值对应的点:


plot(a[mask], b[mask], 'ro')
[<matplotlib.lines.Line2D at 0xa177be0>]

1.numpy_overview的更多相关文章

随机推荐

  1. MSYS2 更换国内源

    转自 : http://www.cnblogs.com/findumars/p/6546088.html 最近一段时间不知怎么的,使用默认的 MSYS2 源升级软件或是安装新软件的特别的慢.所以就翻了 ...

  2. 如何使用jqueryUi的datepicker日历控件?

    参考: http://www.jb51.net/article/85007.htm 这里的日历控件是, 基于jquery的jqureyui中的一个 widget. 需要js 文件: 外部的js文件, ...

  3. UVA 10318 Security Panel(DFS剪枝 + 状压 + 思维)题解

    题意:给一个r*c的矩阵开关(初始全打开的),每次按下一个开关都会改变3*3范围内的有*的地方的状态,问你最少几步能让开关全闭上,按升序输出按哪些按钮 思路:每个按钮至多按一下,按按钮的顺序和结果无关 ...

  4. MySQL 安装步骤

    今天用了一下MySQL,刚好看到之前电保存脑的笔记,于是整理了一下,还是记在博客上方便查询. 1.官网下载https://dev.mysql.com/downloads/mysql/之前安装的是mys ...

  5. Java基础 --Unix与Mac系统 文件路径分隔符(一)

    斜杠‘/’与反斜杠‘\’在不同系统的使用 1)Window平台使用反斜杠'\'作为文件层级分隔符:Windows使用反斜杠作为DOS命令提示符的参数标志,随着发展DOS命令符逐渐被淘汰,大部分情况下斜 ...

  6. js_提示是否删除小案例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. eclipse打开失败

    以前eclipse运行好好的,某一次运行启动不了,一直图标那里转圈,不能启动, 运行eclipsec.exe后,查看发现出现以下错误 SLF4J: Class path contains multip ...

  8. 关于前端SEO的一些常用知识总结

    Search English Optimization,搜索引擎优化,简称为SEO. (1)网站结构布局优化:尽量简单 1. 控制首页链接数量:首页链接不能太多,一旦太多,没有实质性的链接,很容易影响 ...

  9. Qt解析Json数据

    1 JSON数据简介   JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范) ...

  10. easyUI tree 自定义图标

    文章转载自: https://blog.csdn.net/zhlantian/article/details/52913115 近期由于项目中需要使用easyui tree树形列表,并在系统中动态配置 ...