Numpy

ndarray

1.简介

  Numpy是高性能科学计算和数据分析的基础包,也是pandas等其他数据分析的工具的基础。

  NumPy为Python带来了多维数组功能,并且提供了丰富的函数库处理这些数组,且支持向量化运算,使得这些数学函数能够直接对数组进行操作。将本来需要在Python级别进行的循环,放到C语言的运算中,明显地提高了程序的运算速度。

  安装方法:pip install numpy

2、ndarray -多维数组对象

  Numpy的核心特征就是N-维数组对 -ndarray。先通过具体的实例来展示一下ndarray的优势。

多维数组列表

3.常用属性

属性 描述
T 数组的转置(对高维数组而言)
dtype 数组元素的数据类型
size 数组元素的个数
ndim 数组的维数
shape 数组的维度大小(以元组形式)


 

4.数据类型

类型 描述
布尔值  bool_
整型   int_ int8 int16 int32 int 64
无符号整型   uint8 uint16 uint32 uint64
浮点型   float_ float16 float32 float64
复数型   complex_ complex64 complex128

注意:1)无符号整型只能用来存正数,不能用来存负数。

   2)bool_,int_,float_之所以加下划线,是为了和python原生数据类型做区别。

   3)   astype()方法可以修改数组的数据类型。

5.ndarray-创建

方法

描述

array()

将列表转换为数组,可选择显式指定dtype

arange()

range的numpy版,支持浮点数

linspace()

类似arange(),第三个参数为数组长度

zeros()

根据指定形状和dtype创建全0数组

ones()

根据指定形状和dtype创建全1数组

empty()

根据指定形状和dtype创建空数组(随机值)

eye()

根据指定边长和dtype创建单位矩阵

 6.索引和切片

# 索引
>>>np.array([0,1,2,3,4,5])
array([0,1, 2, 3, 4, 5])
----------------------------------------------
>>>li.reshape(6)
array([0, 1, 2, 3, 4, 5])
----------------------------------------------
>>>li = np.arange(6).reshape(2,3)    # 把一维变成二维
>>>li
array([[0, 1, 2],
       [3, 4, 5]])
# 现在有这样一组数据,需求:找到4
列表写法:arr[1][1]
数组写法:arr[1,1]  # 中间通过逗号隔开就可以了

# 布尔型索引
# 给一个数组,选出数组种所有大于5的数。
li = [random.randint(1,10) for _ in range(30)]
a = np.array(li)
a[a>5]
执行结果:
array([10,  7,  7,  9,  7,  9, 10,  9,  6,  8,  7,  6])
----------------------------------------------
原理:
a>5会对a中的每一个元素进行判断,返回一个布尔数组
a > 5的运行结果:
array([False,  True, False,  True,  True, False,  True, False, False,
       False, False, False, False, False, False,  True, False,  True,
       False, False,  True,  True,  True,  True,  True, False, False,
       False, False,  True])
----------------------------------------------
布尔型索引:将同样大小的布尔数组传进索引,会返回一个有True对应位置的元素的数组

通用函数

  能对数组中所有元素同时进行运算的函数就是通用函数。

  常见通用函数:能够接受一个数组的叫做一元函数,接受两个数组的叫二元函数,结果返回的也是一个数组.

 1.一元函数

函数

功能

abs、fabs

分别是计算整数和浮点数的绝对值

sqrt

计算各元素的平方根

square

计算各元素的平方

exp

计算各元素的指数e**x

log

计算自然对数

sign

计算各元素的正负号

ceil

计算各元素的ceiling值

floor

计算各元素floor值,即小于等于该值的最大整数

rint

计算各元素的值四舍五入到最接近的整数,保留dtype

modf

将数组的小数部分和整数部分以两个独立数组的形式返回,与Python的divmod方法类似

isnan

计算各元素的正负号

isinf

表示那些元素是无穷的布尔型数组

cos,sin,tan

普通型和双曲型三角函数

 2.二元函数 

函数

功能

add

将数组中对应的元素相加

subtract

从第一个数组中减去第二个数组中的元素

multiply

数组元素相乘

divide、floor_divide

除法或向下圆整除法(舍弃余数)

power

对第一个数组中的元素A,根据第二个数组中的相应元素B计算A**B

maximum,fmax

计算最大值,fmax忽略NAN

miximum,fmix

计算最小值,fmin忽略NAN

mod

元素的求模计算(除法的余数)



3.数学统计方法

函数 功能
sum 求和
cumsum 求前缀和
mean 求平均数
std 求标准差
var 求方差
min 求最小值
max 求最大值
argmin 求最小值索引
argmax 求最大值索引

4.随机数

随机数生成函数在np.random的子包当中

函数 功能
rand 给定形状产生随机数组(0到1之间的数)
randint 给定形状产生随机整数
choice 给定形状产生随机选择
shuffle 与random.shuffle相同
uniform 给定形状产生随机数组
原文地址:https://www.cnblogs.com/blue-tea/p/11975871.html