NumPy学习

一、NumPy介绍

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

NumPy是一个开源的Python科学数据库,用于快速处理任意维度的数据。NumPy支持常见的数组和矩阵操作,使用NumPy比直接使用Python计算要简洁、快速很多。

NumPy是使用一个ndarray(N维数组)对象处理多维数组,该对象是一个快速灵活运算的大户数据容器。

二、效率问题

ndarray与python列表内存的区别:

ndarray中所有的元素类型相同,存储数据的地址是连续的,使得操作数组元素时速度快。

python列表中元素类型是任意的,不确定的,是采用分离式技术实现的动态顺序表,每个元素需要通过寻址方式找下一个元素。

三、ndarray(N维数组)介绍

ndarray属性

属性名字 属性解释
ndarray.shape 数组维度的元组
ndarray.ndim 数组维数
ndarray.size 数组中的元素数量
ndarray.itemsize 一个数组元素所占内存大小(字节)
ndarray.dtype 数组元素类型

四、生成数组方式

4.1生成0和1数组

np.ones

np.ones_like

np.zeros

np.zeros_like

4.2从现有数组生成

np.array

np.asarray(如果参数是使用ndarray数组,则类似浅拷贝,修改源ndarray内容,np.asarray生成的素组也会变化)

import numpy as np

a = np.array([1, 2, 3])
a1 = np.asarray(a)
a2 = np.array(a)
print("------------修改前---------")
print(a1)
print(a2)
print("------------修改后---------")
a[0] = 1000
print(a1)
print(a2)

------------修改前---------
[1 2 3]
[1 2 3]
------------修改后---------
[1000    2    3]
[1 2 3]

4.3生成固定范围的数组

np.linspace(start, stop, num, endpoint)

start:序列起始值

stop:序列终止值

num:要生成的等间隔样例数量

endpoint:序列中是否包含stop值,,默认为True

np.arange(start, stop, step, dtype)

start:序列起始值

stop:序列终止值

step:每次间隔多少生成数组元素

dtype:数组元素类型

4.4生成随机数组

np.random模块

均匀分布

np.random.rand

返回(0, 1)内的一组均匀分布的数

np.random.uniform(low, high, size)

从一个均匀分布(low, high]中随机采样

size为数组样本数目,为int或元组(tuple)类型

正态分布

np.random.randn

从标准正态分布中返回一个或多个样本值

np.random.normal(loc, scale, size)

loc:均值

scale:标准差

size:输出形状

np.random.stand_normal

返回指定形状的标准正态分布的数组

数组形状修改:

ndarray.reshape

不改变数组元素,返回一个shape形状的数组,原数组不变

ndarray.resize

与.reshape()功能一致,但修改原数组

ndarray.T

求数组的转置

ndarray.astype

类型修改

np.unique

数组的去重

五、ndarray的运算

通用判断函数

np.all()----满足所有

np.any()---满足任一

np.where---三元运算符,

np.where(a >0, 1, 0)

np.logical_and---逻辑与

np.logical_or---逻辑或

原文地址:https://www.cnblogs.com/xjlearningAI/p/14379923.html