numpy

一、概述

1.简介

  • NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 Matlab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。

  • SciPy 是一个开源的 Python 算法库和数学工具包。SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。

  • Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向应用程序嵌入式绘图提供了应用程序接口(API)。

  • Python等动态类型语言一般比C和C++等静态类型语言(编译型语言)运行速度慢。实际上,如果是运算量大的处理对象,用C/C++写程序更好。为此,当Python中追求性能时,人们会用C/C++来实现处理的内容。Python则承担’中间人’的角色,负责调用那些用C/C++写的程序。Numpy中,主要的处理也都是通过C或C++来实现的。因此,我们可以在不损失性能的情况下,使用Python便利的语法。

2. 运行速度

  1. Numpy底层逻辑例程是用C语言编写的
  2. 它尽可能使用向量化代码来加速计算大量数据

向量化代码将矩阵传递给Numpy函数,将同时对大块数据执行操作,而python标准循环一次只操作一个元素

import random
list1 = random.sample(range(1, 10**8), 10**7)
list2 = random.sample(range(1, 10**8), 10**7)
#运行超过七次,代码平均需要大约2s

import numpy as np
list1_np = np.array(list1)
list2_np = np.arrat(list2)
# 运用Numpy数组,运行时间只需要21ms,Numpy速度更快

二、生成数据

1. ndarray

ndarray对象是用于存放同类型元素的多维数组

np.array(object, dtype=None, copy=True, order='C', subok=False, ndmin=0)
'''
object:数组或嵌套的数列
dtype:数组元素的数据类型,可选(复数、浮点数格式等)
copy    
order:创建数组的样式,C为行方向,F为列方向,A为任意方向
subok:默认返回一个与基类类型一致的数组
ndmin:指定生成数组的最小维度
'''

2. np.empty

创建一个指定形状和类型的空数组,数组元素为随机值

np.empty(shape, dtype=float, order='C')
'''
shape:形状
'''

3. np.zeros

返回一个给定形状和类型的用0填充的数组

np.zeros(shape, dtype=float, order='C')
'''
shape:形状
'''

4. np.ones

返回一个给定形状和类型的用1填充的数组

np.ones(shape, dtype=float, order='C')
'''
shape:形状
'''

5. np.arange

返回一个等差数列

np.arange([start,]stop,[step,]dtype = None, *, like=None)
'''
start:起始数,默认为0
stop:终止数,不包含这个数
step:差值
dtype
like
'''

1. np.random

1.rand

np.random.rand(d0,d1,...,dn)
'''
d表示第几个维度
'''

2. randn

np.random.randn(d0,d1,...,dn)
'''
返回一个样本,具有标准正态分布
'''

3. randint

np.random.randint(low[,high,size])
'''
返回随机的整数,位于半开区间[low,high)
'''

4. random

np.random.random([size])
'''
返回随机的浮点数,在半开区间[0.0, 1.0)
'''

5. choice

np.random.choice(a[, size,replace,p])
'''
从a(只要是ndarray都可以,但必须是一维)中随机抽取数字,并组成指定大小size的数组
replace:True表示可以取相同数字,False表示不可以取相同数字
数组P:与数组a相对应,表示取数组a中每个元素的概率,默认为选取每个元素概率相同
'''
>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
>>> array([3, 3, 0])

三、计算

1. np.percentile

np.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)
'''
找到一组数的分为数值
a:array
q:介于0-100的float,用来计算是几分位的参数,如四分之一位就是25,如果要算两个位置的数就是(25,75)
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值