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 ...
随机推荐
- Vue02 样式的动态绑定
daigengxin......2018-3-8 21:09:18 跟angular2类似,分为CSS类绑定和Style样式绑定两种方式,详情参见
- Batch Normalization 与Dropout 的冲突
BN或Dropout单独使用能加速训练速度并且避免过拟合 但是倘若一起使用,会产生负面效果. BN在某些情况下会削弱Dropout的效果 对此,BN与Dropout最好不要一起用,若一定要一起用,有2 ...
- Socket编程--基础(基本server/client实现)
IPv4套接口地址结构 IPv4套接口地址结构通常也称为“网际套接字地址结构”,它以“sockaddr_in”命名,定义在头文件中 LINUX结构下的常用结构,一般创建套接字的时候都要将这个结构里面的 ...
- 高效配置Linux代理服务器 Squid介绍
作为一种免费的网络操作系统,Linux越来越受到广大网络爱好者的欢迎,目前Internet上运行的主机有相当一部分采用的就是Linux,而且中国已经把Linux作为政府上网的指定网络操作系统.种种迹象 ...
- IntelliJ Idea 免费激活方法
文章介绍 文章不错,指的研究一下,idea的联网激活确实有可行性,但是上有政策,下有对策,如何才能保护版权,是一个值得深思的问题. 文章属于转载,文末有文章来源,转载注明出处. 1 激活码激活 到网站 ...
- sql 脚本创建索引
之前从没有用SqlServer数据库处理过大数据量的表,都是用Oracle,然后一般为数据量较大的表添加索引或主键都是用plsql工具,今天正好需要为一张保存于SqlServer数据库的千万级数据表增 ...
- jQuery之$.support.xxx
下面这段代码来自jQuery-file-upload 9.19官方Demo $(function () { 'use strict'; // Change this to the location o ...
- linux linux系统的安装及使用
linux linux系统的安装及使用 一.linux系统中安装vm-tools工具: 步骤: 1.在vmware workstation软件中:虚拟机-安装vmware-tools-状态栏会提示- ...
- WGestures鼠标手势快捷手势介绍
1.官方网站 WGestures 2.快截图 3.自定义快捷键列表
- 【Python发展】pandas和koalas
1.pandas介绍 Python 数据科学在过去几年中爆炸式增长, pandas 已成为生态系统的关键.当数据科学家得到一个数据集时,他们会使用 pandas 进行探索.它是数据处理和分析的终极工具 ...