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. PHP基础知识之————php5-cli 的安装以及phpredis的安装

    在系统安装完后最好执行下列命令更新下软件 sudo apt-get update 安装php5-cli apt-get install php5-cli 下载phpredis wget https:/ ...

  2. 基于讯为4412开发板的Android开发流程

    讯为4412开发板  使用三星2410芯片,基于arm9架构,由于自己电脑硬件的局限,只能跑Android4.0.3系统. 1.Uboot这个直接使用官方镜像烧写就可以了,一般情况不用去重复烧写. 略 ...

  3. 优雅地在markdown插入图片

    markdown 中插入图片,好烦!!!   喜欢用Markdown写文字,但是它的图片引用是一个大问题(当然csdn不会遇到这个问题).借用第三方将图片储存在印象笔记上是一个好办法.但是会出现的一个 ...

  4. UIScrollView 原理详解

    转载此文章原因:web页面在ipad的app中总是有橡皮筋效果,使用iscroll虽然能解决橡皮筋想过,但是滚动层内的元素事件都无法触发.故同安卓和ios一样使用后台解决...红色的为解决方案.. S ...

  5. Javascript之链式运动框架1

    第一部分:HTML内容: <script src="6-1.js"></script> <script> window.onload=funct ...

  6. iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局

    iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局 一.项目文件结构和plist文件 二.实现效果 三.代码示例 1.没有使用配套的类,而是直接使用xib文 ...

  7. shell使用随笔

    001 对文件某一列求和 awk '{sum += $collum};END {print sum}' /path/to/your/file 2 3 3 5 假设文件内容如上所示: # awk '{s ...

  8. 使用Jsoup 抓取页面的数据

    需要使用的是jsoup-1.7.3.jar包   如果需要看文档我下载请借一步到官网:http://jsoup.org/ 这里贴一下我用到的 Java工程的测试代码 package com.javen ...

  9. JavaScript中的逗号运算符

    JavaScript逗号运算符  阅读本文的前提,明确表达式.短语.运算符.运算数这几个概念. 所谓表达式,就是一个JavaScript的“短语”,JavaScript解释器可以计算它,从而生成一个值 ...

  10. jboss eap开启https协议

    1.使用 keytool -genkey -keystore chap8.keystore -storepass rmi+ssl -keypass rmi+ssl -keyalg RSA -alias ...