python模块之numpy
Numpy是一个第三方库,是数组相关的运算
通过pip安装;pip install numpy
Anaconda python的一个科学计算发行版本,安装后将不必单独安装numpy,下面的库模块也将不必安装Scipu,numpy,pandas,matplotlib,scikit-learn
实例演示
- import numpy as np
- #用列表创建数组
- arr = np.array([1,2,3,4])#用普通列表创建数组
- arr_2d = np.array([[1,2],[3,4]]) #嵌套列表创建多维数组
- arr.ndim #1,数组维度
- arr_2d.ndim #2 ,数组维度
- arr.shape #(4,) 数组形状
- arr_2d.shape #(2,2) 数组形状
- arr.dtype #dtype('int32'),数组类元素类型
- #数组函数生成数组
- arr2 = np.arange(10) #[0,10)区间函数
- print(arr2)
- arr3 = np.linspace(0,4,10) # 0到4之间等分10份
- print(arr3)
- arr4 = np.random.randn(6,4) #正态分布的随机数
- print(arr4)
- arr5 = np.random.randint(1,5,(3,4))#1-5随机选整数,形成3*4的数组
- print(arr5)
结果:
- [0 1 2 3 4 5 6 7 8 9]
- [0. 0.44444444 0.88888889 1.33333333 1.77777778 2.22222222
- 2.66666667 3.11111111 3.55555556 4. ]
- [[ 0.66212053 -0.09177667 0.1540246 -0.60972427]
- [-0.29582584 -1.78060509 0.85346138 0.98237782]
- [ 0.81189452 1.05013452 -1.30248473 1.68647191]
- [-0.51096937 0.55555892 1.04796969 -0.68796894]
- [ 1.90261247 0.66688596 -0.83434671 -1.96265811]
- [-0.55722723 -0.49191761 0.53691393 0.32902115]]
- [[2 2 4 4]
- [4 3 1 3]
- [2 2 4 2]]
- #特殊方法数组
- zero = np.zeros((3,5)) #数组元素为0的3*5数组
- print(zero.dtype,zero)
- one = np.ones((3,5),dtype="int32") #数组元素为1的3*5数组,dtype指定数组内元素的数据类型
- print(one.dtype,one)
- eye_arr = np.eye(6) #对角线为1的数组
- print(eye_arr)
结果:
- float64 [[0. 0. 0. 0. 0.]
- [0. 0. 0. 0. 0.]
- [0. 0. 0. 0. 0.]]
- int32 [[1 1 1 1 1]
- [1 1 1 1 1]
- [1 1 1 1 1]]
- [[1. 0. 0. 0. 0. 0.]
- [0. 1. 0. 0. 0. 0.]
- [0. 0. 1. 0. 0. 0.]
- [0. 0. 0. 1. 0. 0.]
- [0. 0. 0. 0. 1. 0.]
- [0. 0. 0. 0. 0. 1.]]
- #数组的 索引和切片
- arr5 = np.array([[4, 2, 2, 2],[3, 2, 2, 4],[3, 2, 1, 4]])
- arr5[0] #array([4, 2, 2, 2])
- arr5[0,0] #4
- arr5[-1] # array([3, 2, 1, 4])
- arr5[-1,-1] #4
- arr5[:2,1] #array([2,2])切片,逗号前表示行切片,逗号后表示列切片
- #改变数组形状
- arr6 = arr5.reshape(4,3)#生成新的数组,要求元素必须相等
- print(arr6)
- arr7 = arr5.reshape(2,6)
- print(arr7)
- arr8 = arr7.ravel() #变成1维数组
- print(arr8)
- #矩阵转置
- arr11 = arr7.transpose() #行列互换
- print(arr11)
- #矩阵广播:至少有个维度是相同的(标量是个特殊情况)
- one = one*10
- print(one)
结果:
- [[4 2 2]
- [2 3 2]
- [2 4 3]
- [2 1 4]]
- [[4 2 2 2 3 2]
- [2 4 3 2 1 4]]
- [4 2 2 2 3 2 2 4 3 2 1 4]
- [[4 2]
- [2 4]
- [2 3]
- [2 2]
- [3 1]
- [2 4]]
- [[10. 10. 10. 10. 10.]
- [10. 10. 10. 10. 10.]
- [10. 10. 10. 10. 10.]]
- #常用运算
- arr9 = np.ones((2,6))
- print(arr9)
- arr79 = arr7+arr9
- print(arr79)
- arr7_9 = arr7-arr9
- print(arr7_9)
- arr10 = arr7*arr9
- print(arr10)
- #np.dot() #点乘
结果:
- [[1. 1. 1. 1. 1. 1.]
- [1. 1. 1. 1. 1. 1.]]
- [[5. 3. 3. 3. 4. 3.]
- [3. 5. 4. 3. 2. 5.]]
- [[3. 1. 1. 1. 2. 1.]
- [1. 3. 2. 1. 0. 3.]]
- [[4. 2. 2. 2. 3. 2.]
- [2. 4. 3. 2. 1. 4.]]
- print(np.sin(arr10)) #arr10的每个元素求正选
- print(np.sqrt(arr10)) #arr10的每个元素求平分根
结果:
- [[-0.7568025 0.90929743 0.90929743 0.90929743 0.14112001 0.90929743]
- [ 0.90929743 -0.7568025 0.14112001 0.90929743 0.84147098 -0.7568025 ]]
- [[2. 1.41421356 1.41421356 1.41421356 1.73205081 1.41421356]
- [1.41421356 2. 1.73205081 1.41421356 1. 2. ]]
- #数组最大最小
- arr10.max() #求最大值
- arr10.argmax() #最大值所在索引
- arr10.min() #求最小值
- arr10.argmin() #最小值所在索引
- arr10.sum() #求和
python模块之numpy的更多相关文章
- python模块之numpy与pandas
一.numpy numpy是python数据分析和机器学习的基础模块之一.它有两个作用:1.区别于list列表,提供了数组操作.数组运算.以及统计分布和简单的数学模型:2.计算速度快[甚至要由于pyt ...
- python模块之numpy,pandas基本用法
numpy: 是 Python 的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库简单来说:就是支持一维数组和多维数组的创建和操作,并有丰富的函数库. 直接看例子 ...
- Python之路-numpy模块
这里是首先需要安装好Anaconda Anaconda的安装参考Python之路-初识python及环境搭建并测试 配置好环境之后开始使用Jupyter Notebook 1.打开cmd,输入 jup ...
- Python学习day18-常用模块之NumPy
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- Python基础篇【第5篇】: Python模块基础(一)
模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...
- Python数据分析之numpy学习
Python模块中的numpy,这是一个处理数组的强大模块,而该模块也是其他数据分析模块(如pandas和scipy)的核心. 接下面将从这5个方面来介绍numpy模块的内容: 1)数组的创建 2)有 ...
- Python模块学习
6. Modules If you quit from the Python interpreter and enter it again, the definitions you have made ...
- 50个很棒的Python模块
50个很棒的Python模块 我很喜欢Python,Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所有的需要:比如Databases,GUIs,Images, Soun ...
随机推荐
- Ros学习调试——rqt_console
1.rqt_console rqt_console:ROS日志框架(logging framework)的一部分,用来显示节点的输出信息 rqt_logger_level:允许我们修改节点运行时输出信 ...
- Arduino 002 --- 在Ubuntu(Linux) 中搭建Arduino开发环境
在Ubuntu/Linux 中搭建Arduino开发环境 我的Ubuntu系统:Ubuntu 14.04.10 TLS 32位 需要安装的Arduino的版本:Arduino 1.6.11(最新版本) ...
- linux文件夹下载
1.压缩文件夹 tar cvzf ./chinese.tar.gz /usr/share/fonts/chinese 2.下载 sz chinese.tar.gz
- dd相关命令
用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. if= 输入文件或设备名称 eg:if=u-boot-with-spl.bin of=输出文件或设备名称 eg:of=/dev/sdb bs ...
- STL 结构体 内部函数
typedef struct Node { int val; string name; bool operator < (const Node &right) const { retur ...
- C#修饰符讲解大全
1.修饰符是什么? 修饰符是用于限定类型以及类型成员的声明的一种符号.[百度百科] 2.修饰符分类 13种修饰符,按功能可分为三类:访问修饰符,类修饰符和成员修饰符.[百度百科] 作 用:限定类型以及 ...
- Django会话,用户和注册之用户认证
通过session,我们可以在多次浏览器请求中保持数据, 接下来的部分就是用session来处理用户登录了. 当然,不能仅凭用户的一面之词,我们就相信,所以我们需要认证. 当然了,Django 也提供 ...
- Unity Fps示例
https://mp.weixin.qq.com/s/JGnU6TW1V0BCrz0mCRswig
- ObjectARXWizards & AutoCAD .NET Wizards 下载地址
Autodesk Developer Network ObjectARX Wizards The ObjectARX Wizards for AutoCAD 2016 for Visual Stud ...
- FullCalendar插件的基本使用
我的另一博客地址:https://segmentfault.com/u/lyrfighting/articles 前段时间,一直在开发考勤系统,当时为满足设计的需求,选了好几个插件,最后决定采用Ful ...