Numpy是一个第三方库,是数组相关的运算

通过pip安装;pip install numpy

Anaconda python的一个科学计算发行版本,安装后将不必单独安装numpy,下面的库模块也将不必安装Scipu,numpy,pandas,matplotlib,scikit-learn

实例演示

  1. import numpy as np
  2.  
  3. #用列表创建数组
  4. arr = np.array([1,2,3,4])#用普通列表创建数组
  5. arr_2d = np.array([[1,2],[3,4]]) #嵌套列表创建多维数组
  6.  
  7. arr.ndim #1,数组维度
  8. arr_2d.ndim #2 ,数组维度
  9.  
  10. arr.shape #(4,) 数组形状
  11. arr_2d.shape #(2,2) 数组形状
  12.  
  13. arr.dtype #dtype('int32'),数组类元素类型

  1. #数组函数生成数组
  2. arr2 = np.arange(10) #[0,10)区间函数
  3. print(arr2)
  4. arr3 = np.linspace(0,4,10) # 0到4之间等分10份
  5. print(arr3)
  6. arr4 = np.random.randn(6,4) #正态分布的随机数
  7. print(arr4)
  8. arr5 = np.random.randint(1,5,(3,4))#1-5随机选整数,形成3*4的数组
  9. print(arr5)

结果:

  1. [0 1 2 3 4 5 6 7 8 9]
  2. [0. 0.44444444 0.88888889 1.33333333 1.77777778 2.22222222
  3. 2.66666667 3.11111111 3.55555556 4. ]
  4. [[ 0.66212053 -0.09177667 0.1540246 -0.60972427]
  5. [-0.29582584 -1.78060509 0.85346138 0.98237782]
  6. [ 0.81189452 1.05013452 -1.30248473 1.68647191]
  7. [-0.51096937 0.55555892 1.04796969 -0.68796894]
  8. [ 1.90261247 0.66688596 -0.83434671 -1.96265811]
  9. [-0.55722723 -0.49191761 0.53691393 0.32902115]]
  10. [[2 2 4 4]
  11. [4 3 1 3]
  12. [2 2 4 2]]
  1. #特殊方法数组
  2. zero = np.zeros((3,5)) #数组元素为0的3*5数组
  3. print(zero.dtype,zero)
  4.  
  5. one = np.ones((3,5),dtype="int32") #数组元素为1的3*5数组,dtype指定数组内元素的数据类型
  6. print(one.dtype,one)
  7.  
  8. eye_arr = np.eye(6) #对角线为1的数组
  9. print(eye_arr)

结果:

  1. float64 [[0. 0. 0. 0. 0.]
  2. [0. 0. 0. 0. 0.]
  3. [0. 0. 0. 0. 0.]]
  4. int32 [[1 1 1 1 1]
  5. [1 1 1 1 1]
  6. [1 1 1 1 1]]
  7. [[1. 0. 0. 0. 0. 0.]
  8. [0. 1. 0. 0. 0. 0.]
  9. [0. 0. 1. 0. 0. 0.]
  10. [0. 0. 0. 1. 0. 0.]
  11. [0. 0. 0. 0. 1. 0.]
  12. [0. 0. 0. 0. 0. 1.]]
  1. #数组的 索引和切片
  2. arr5 = np.array([[4, 2, 2, 2],[3, 2, 2, 4],[3, 2, 1, 4]])
  3. arr5[0] #array([4, 2, 2, 2])
  4. arr5[0,0] #4
  5. arr5[-1] # array([3, 2, 1, 4])
  6. arr5[-1,-1] #4
  7. arr5[:2,1] #array([2,2])切片,逗号前表示行切片,逗号后表示列切片

  1. #改变数组形状
  2. arr6 = arr5.reshape(4,3)#生成新的数组,要求元素必须相等
  3. print(arr6)
  4. arr7 = arr5.reshape(2,6)
  5. print(arr7)
  6. arr8 = arr7.ravel() #变成1维数组
  7. print(arr8)
  8.  
  9. #矩阵转置
  10. arr11 = arr7.transpose() #行列互换
  11. print(arr11)
  12.  
  13. #矩阵广播:至少有个维度是相同的(标量是个特殊情况)
  14. one = one*10
  15. print(one)

结果:

  1. [[4 2 2]
  2. [2 3 2]
  3. [2 4 3]
  4. [2 1 4]]
  5. [[4 2 2 2 3 2]
  6. [2 4 3 2 1 4]]
  7. [4 2 2 2 3 2 2 4 3 2 1 4]
  8. [[4 2]
  9. [2 4]
  10. [2 3]
  11. [2 2]
  12. [3 1]
  13. [2 4]]
  14. [[10. 10. 10. 10. 10.]
  15. [10. 10. 10. 10. 10.]
  16. [10. 10. 10. 10. 10.]]

  1. #常用运算
  2. arr9 = np.ones((2,6))
  3. print(arr9)
  4. arr79 = arr7+arr9
  5. print(arr79)
  6. arr7_9 = arr7-arr9
  7. print(arr7_9)
  8. arr10 = arr7*arr9
  9. print(arr10)
  10. #np.dot() #点乘

结果:

  1. [[1. 1. 1. 1. 1. 1.]
  2. [1. 1. 1. 1. 1. 1.]]
  3. [[5. 3. 3. 3. 4. 3.]
  4. [3. 5. 4. 3. 2. 5.]]
  5. [[3. 1. 1. 1. 2. 1.]
  6. [1. 3. 2. 1. 0. 3.]]
  1. [[4. 2. 2. 2. 3. 2.]
  2. [2. 4. 3. 2. 1. 4.]]

  1. print(np.sin(arr10)) #arr10的每个元素求正选
  2. print(np.sqrt(arr10)) #arr10的每个元素求平分根

结果:

  1. [[-0.7568025 0.90929743 0.90929743 0.90929743 0.14112001 0.90929743]
  2. [ 0.90929743 -0.7568025 0.14112001 0.90929743 0.84147098 -0.7568025 ]]
  3. [[2. 1.41421356 1.41421356 1.41421356 1.73205081 1.41421356]
  4. [1.41421356 2. 1.73205081 1.41421356 1. 2. ]]
  1. #数组最大最小
  2. arr10.max() #求最大值
  3. arr10.argmax() #最大值所在索引
  4. arr10.min() #求最小值
  5. arr10.argmin() #最小值所在索引
  6. arr10.sum() #求和

python模块之numpy的更多相关文章

  1. python模块之numpy与pandas

    一.numpy numpy是python数据分析和机器学习的基础模块之一.它有两个作用:1.区别于list列表,提供了数组操作.数组运算.以及统计分布和简单的数学模型:2.计算速度快[甚至要由于pyt ...

  2. python模块之numpy,pandas基本用法

    numpy: 是 Python 的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库简单来说:就是支持一维数组和多维数组的创建和操作,并有丰富的函数库. 直接看例子 ...

  3. Python之路-numpy模块

    这里是首先需要安装好Anaconda Anaconda的安装参考Python之路-初识python及环境搭建并测试 配置好环境之后开始使用Jupyter Notebook 1.打开cmd,输入 jup ...

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

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

  5. Python基础篇【第5篇】: Python模块基础(一)

    模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...

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

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

  7. Python数据分析之numpy学习

    Python模块中的numpy,这是一个处理数组的强大模块,而该模块也是其他数据分析模块(如pandas和scipy)的核心. 接下面将从这5个方面来介绍numpy模块的内容: 1)数组的创建 2)有 ...

  8. Python模块学习

    6. Modules If you quit from the Python interpreter and enter it again, the definitions you have made ...

  9. 50个很棒的Python模块

    50个很棒的Python模块 我很喜欢Python,Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所有的需要:比如Databases,GUIs,Images, Soun ...

随机推荐

  1. Ros学习调试——rqt_console

    1.rqt_console rqt_console:ROS日志框架(logging framework)的一部分,用来显示节点的输出信息 rqt_logger_level:允许我们修改节点运行时输出信 ...

  2. Arduino 002 --- 在Ubuntu(Linux) 中搭建Arduino开发环境

    在Ubuntu/Linux 中搭建Arduino开发环境 我的Ubuntu系统:Ubuntu 14.04.10 TLS 32位 需要安装的Arduino的版本:Arduino 1.6.11(最新版本) ...

  3. linux文件夹下载

    1.压缩文件夹 tar cvzf ./chinese.tar.gz /usr/share/fonts/chinese 2.下载 sz chinese.tar.gz

  4. dd相关命令

    用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. if= 输入文件或设备名称 eg:if=u-boot-with-spl.bin of=输出文件或设备名称 eg:of=/dev/sdb bs ...

  5. STL 结构体 内部函数

    typedef struct Node { int val; string name; bool operator < (const Node &right) const { retur ...

  6. C#修饰符讲解大全

    1.修饰符是什么? 修饰符是用于限定类型以及类型成员的声明的一种符号.[百度百科] 2.修饰符分类 13种修饰符,按功能可分为三类:访问修饰符,类修饰符和成员修饰符.[百度百科] 作 用:限定类型以及 ...

  7. Django会话,用户和注册之用户认证

    通过session,我们可以在多次浏览器请求中保持数据, 接下来的部分就是用session来处理用户登录了. 当然,不能仅凭用户的一面之词,我们就相信,所以我们需要认证. 当然了,Django 也提供 ...

  8. Unity Fps示例

    https://mp.weixin.qq.com/s/JGnU6TW1V0BCrz0mCRswig

  9. ObjectARXWizards & AutoCAD .NET Wizards 下载地址

    Autodesk Developer Network ObjectARX Wizards The ObjectARX Wizards for AutoCAD 2016 for  Visual Stud ...

  10. FullCalendar插件的基本使用

    我的另一博客地址:https://segmentfault.com/u/lyrfighting/articles 前段时间,一直在开发考勤系统,当时为满足设计的需求,选了好几个插件,最后决定采用Ful ...