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. 配置org.springframework.scheduling.quartz.CronTriggerBean (转载)

    在项目中又用到了定时器,对于定时器的应用总是模模糊糊的,今天结合网上找到的资料与自己在项目中写的简单地在此写一下,以备需要时查阅. 一个Quartz的CronTrigger表达式分为七项子表达式,其中 ...

  2. CSS 3 颜色表示法

    1,Color Name:red    优点:方便记忆  缺点:数量少不支持透明度 2,HEX方式:#FFFFFF    优点:颜色种类多   缺点:换算复杂需要借助工具 3,RGB方式:rgb(25 ...

  3. mysql查询结果导出到文件

    方法一: 直接执行命令: mysql> select count(1) from table   into outfile '/tmp/test.xls'; Query OK, 31 rows ...

  4. stage3D之疑问

    1.stage3D本身是建立在图形API(如DirectX.Opengl等)之上的一套API,那么在创建stage3D demo时,如何指定使用哪种图形API呢?

  5. null和undefined

    null表示"没有对象",即该处不应该有值.典型用法是: (1) 作为函数的参数,表示该函数的参数不是对象. (2) 作为对象原型链的终点. undefined表示"缺少 ...

  6. CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chrome、Opera

    CSS Hack大全-教你如何区分出IE6-IE10.FireFox.Chrome.Opera 转载自:http://www.jb51.net/article/50116.htm 现在的浏览器IE6- ...

  7. Spring知识点

    IOC: Inversion of Control 控制反转 ①自己控制→容器控制 ②控制具体实现→控制抽象(接口) DI:Dependency Injection 依赖注入 依赖于容器注入的对象 注 ...

  8. mysql 处理查询请求过程

    需要搞清楚查询为什么会慢,就要搞清楚mysql处理查询请求的过程: 1.客户端发送SQL请求给服务器 2.服务器检查是否可以在查询缓存中命中该SQL   查询缓存对SQL性能的影响. 1.需要对缓存加 ...

  9. NET中的规范标准注释(一) -- XML注释标签讲解

    一.摘要 .Net允许开发人员在源代码中插入XML注释,这在多人协作开发的时候显得特别有用. C#解析器可以把代码文件中的这些XML标记提取出来,并作进一步的处理为外部文档. 这篇文章将展示如何使用这 ...

  10. JSON认识

    阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用JSON 在.NET中如何使用JSON 总结 JSON的全称是”JavaScript Object Notation”,意思是Java ...