NumPy(Numerical Python的简称) 是高性能科学计算和数据分析的基础包,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数,其部分基本功能如下:

ndarry,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数值

用于对整组数据进行快速运算的标准数学函数(无需编写循环)

用于读写磁盘数据的工具以及用于操作内存映射文件的工具

线性代数、随机生成以及傅立叶变化功能

用于集成C、C++、Fortran等语言编写的代码工具

  

In [9]: import numpy as np

In [10]: print np.version.version
1.8.2

  

In [16]: data1 = [2, 3, 5, 7, 1024]

In [17]: arr1 = np.array(data1)

In [18]: arr1
Out[18]: array([ 2, 3, 5, 7, 1024]) In [19]: data2 = ([1,2,3,4],[5,6,7,8]) In [20]: arr2 = np.array(data2) In [21]: arr2
Out[21]:
array([[1, 2, 3, 4],
[5, 6, 7, 8]]) In [22]: arr2.ndim
Out[22]: 2 In [23]: arr2.shape
Out[23]: (2, 4)

  除非显式说明,否则np.array都会尝试为新建的这个数组推断出一个较为适合的数据类型,数据类型保存在一个特殊的dtype对象中,

In [25]: arr1.dtype
Out[25]: dtype('int64') In [26]: arr2.dtype
Out[26]: dtype('int64')

  可以通过nadarry的astype方法显式地转化其他dtype

In [45]: evilxr = np.array([6,7,2,3,8,6])

In [46]: evilxr.dtype
Out[46]: dtype('int64') In [47]: folat_evilxr = evilxr.astype(np.float) In [48]: folat_evilxr.dtype
Out[48]: dtype('float64')

  如果将整数转换为浮点数,则小数部分将会被截断(而不是四舍五入)

In [57]: evilxr = np.array([6.1, 7.5, 2.9, 3.2, 8.9, 6.123])

In [58]: evilxr.dtype
Out[58]: dtype('float64') In [59]: int_evilxr = evilxr.astype(np.int32) In [60]: int_evilxr
Out[60]: array([6, 7, 2, 3, 8, 6], dtype=int32)

  

  

zeros和ones也可以分别创建指定长度或者形状的全0或全1数组,empty可以创建一个没有任何具体值的数组。

In [30]: np.zeros(2)
Out[30]: array([ 0., 0.]) In [31]: np.zeros((2,3))
Out[31]:
array([[ 0., 0., 0.],
[ 0., 0., 0.]]) In [32]: np.empty((2,3,2))
Out[32]:
array([[[ 2.15749693e-316, 0.00000000e+000],
[ 0.00000000e+000, 0.00000000e+000],
[ 0.00000000e+000, 0.00000000e+000]], [[ 0.00000000e+000, 0.00000000e+000],
[ 0.00000000e+000, 0.00000000e+000],
[ 0.00000000e+000, 0.00000000e+000]]])

  arange是Python内置函数range的数组版

In [36]: np.arange(8)
Out[36]: array([0, 1, 2, 3, 4, 5, 6, 7])

  数组和标量之间的运算

In [2]: data1 = [8, 9, 5, 9]

In [3]: arr1 = np.array(data1)

In [7]: import numpy as np

In [8]: arr1 = np.array(data1)

In [9]: arr1
Out[9]: array([8, 9, 5, 9]) In [10]: arr1 * arr1
Out[10]: array([64, 81, 25, 81]) In [11]: arr1 - arr1
Out[11]: array([0, 0, 0, 0]) In [12]: arr1 +1
Out[12]: array([ 9, 10, 6, 10])

  不同数组之间的运算,也叫广播

Python 学习之 NumPy的更多相关文章

  1. python学习之Numpy.genfromtxt

    Python 并没有提供数组功能,虽然列表 (list) 可以完成基本的数组功能,但它并不是真正的数组,而且在数据量较大时,使用列表的速度就会慢的让人难受.Numpy 提供了真正的数组功能,以及对数据 ...

  2. python学习之numpy实战

    import numpy as np def main(): lst=[[1,3,5],[2,4,6]] print('hello world') print(type(lst)) np_lst = ...

  3. python学习之numpy.ewaxis

    当多维数组的某一列时返回的是一个行向量 >>> X = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) >> ...

  4. 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇

    始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...

  5. python及pandas,numpy等知识点技巧点学习笔记

    python和java,.net,php web平台交互最好使用web通信方式,不要使用Jypython,IronPython,这样的好处是能够保持程序模块化,解耦性好 python允许使用'''.. ...

  6. Python学习day18-常用模块之NumPy

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  7. 常用统计分析python包开源学习代码 numpy pandas matplotlib

    常用统计分析python包开源学习代码 numpy pandas matplotlib 待办 https://github.com/zmzhouXJTU/Python-Data-Analysis

  8. python:<class 'numpy.ndarray'>的学习

    在学习opencv-python的时候,给出图片地址再调用cv2.imread("地址"),发现出创建的是numpy类型的ndarray对象,用来存放多维数组的对象 # 导入cv2 ...

  9. 【python学习小知识】求绝对值和numpy和tensor的相互转换

    一.python求绝对值的三种方法 1.条件判断 2.内置函数abs() 3.内置模块 math.fabs 1.条件判段,判断大于0还是小于0,小于0则输出相反数即可 # 法1:使用条件判断求绝对值 ...

随机推荐

  1. SPI总线(同步)

    一.SPI总线简介 串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口.SPI 用 于CPU与各种外围器件进行全双工. ...

  2. 基于zepto的一个日期区间选择插件

    功能:类似去哪选日期的那个日历,选第二个日期关闭日历,https://github.com/zhangchen2397/calendar在这个插件基础上改哒,这个只能选一个日期,我加了选两个日期的.并 ...

  3. Java 泛型,了解这些就够用了。

    此文目录: Java泛型是什么? 通常的泛型的写法示例 类型擦除 为什么要使用Java泛型 通过示例了解PECS原则 一.Java泛型是什么? 官方定义 泛型是Java SE 1.5的新特性,泛型的本 ...

  4. linux 基本命令操作

    1.ls 命令 ls -a  列出所有文件,包括隐藏文件 ls -l  列出文件详细信息 ls -r 列出所有文件包括文件夹 查询具体文件可以在命令后面加  |grep 要匹配的字符串,方便我们查找, ...

  5. iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序

    iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序 一.plist文件和项目结构图 说明:这是一个嵌套模型的示例 二.代码示例: YYcarsgroup.h文件代码: // // YYcar ...

  6. 微信、QQ浏览器X5内核问题汇总

    一. 资料汇总 1.前端H5调起QQ浏览器的总结:http://km.oa.com/group/22486/articles/show/210189?kmref=search 2.Android We ...

  7. CSipSimple结构浅析

    最近做一个VOIP的项目,调研了CSipSimple.都说CSipSimple结构清晰,但是代码下下来看了一下,还是一头雾水,不知从何看起.于是想到从最简单的打电话开始,借助网上一篇博文"C ...

  8. 团队开发——冲刺2.c

    冲刺阶段二(第三天) 1.昨天做了什么? 把“开始游戏”.“退出游戏”.“取消”等文字按钮加工成游戏图标,美化游戏界面背景. 2.今天准备做什么? 因为收集的图标时比较杂乱,没有针对性,把游戏图标进行 ...

  9. maven .assembly

    配置文件中 配置好Assemblyc插件. 功能:打依赖jar包. java代码如下: <assembly xmlns="http://maven.apache.org/plugins ...

  10. 关于KNN的python3实现

    关于KNN,有幸看到这篇文章,写的很好,这里就不在赘述.直接贴上代码了,有小的改动.(原来是python2版本的,这里改为python3的,主要就是print) 环境:win7 32bit + spy ...