栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Learning 2 - Python数据分析与应用】NumPy 数组 Basic

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Learning 2 - Python数据分析与应用】NumPy 数组 Basic

NumPy 数组对象 nd.array

1. 数组属性

nd.array数组是存储单一数据类型的多维数组

属性描述
ndim返回int。表示数组的维数
shape返回元组 tuple。表示数组的尺寸,对于n行m列的矩阵,形状(n,m)
size返回int。表示数组的元素总数,等于数组形状的乘积。三行四列=12
dtype返回data-type。描述数组中元素的类型
itemsize返回 int。表示数组的每个元素的大小(以字节为单位)

创建数组并查看属性

2. 数组创建

numpy.array(object, dtype=None, copy=True, order=‘K’,subok=False, ndmin=0)

参数描述
object接收array。表示想要创建的数组。必须给定,无默认。
dtype接收data-type。表示数组所需的数据类型。如果未给定,则选择保存对象所需的最小类型。默认为None。设置了就优先以设置的为主。
ndmin接收int。指定生成数组应该具有的最小维数。默认为None

重新设置数组的shape,变为三行两列

使用 arange 函数创建数组

之前接触的range(10)是0-9的10个数字,arange也是类似

使用 linspace 函数创建数组

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)

从0开始到10结尾,num为总个数。加上endpoint=False,就不会取到10

jupyter notebook查看函数简单介绍的快捷键为 shift+tab

使用 logspace 函数创建等比数列

base参数为底数,base=2,以2为底

使用zeros函数创建全0的数组

使用eye函数创建对角线为1,其余为0的数组

使用diag函数创建对角线元素为指定数值的数组

使用ones函数创建元素全为1的数组,与zeros类似

3. 数组数据类型

NumPy部分基本数据类型与其取值范围(dtype)

在python当中只有整形和浮点型的区别,没有区分XX位浮点型/整形,在Numpy中可以,节省空间。

部分类型描述
bool用一位存储的布尔类型(值为TRUE或FALSE)
inti由所在平台决定其精度的整数(一般为int32或int64)
int8整数,范围为−128至127
int16整数,范围为−32768至32767
int32整数,范围为(-2的31次方)至(2的32次方)-1

数组数据类型转换

一些简单的转换例子

在使用array函数创建数组时,数组的数据类型默认是浮点型(有加“.”的话一般会是浮点型)。自定义数组数据,则可以预先指定数据类型 NumPy 生成随机数 np.random

random模块常用随机数生成函数

函数说明
seed确定随机数生成器的种子。
permutation返回一个序列的随机排列或返回一个随机排列的范围。
shuffle对一个序列进行随机排序。
binomial产生二项分布的随机数。
normal产生正态(高斯)分布的随机数。
beta产生beta分布的随机数。
chisquare产生卡方分布的随机数。
gamma产生gamma分布的随机数。
uniform产生在[0,1]中均匀分布的随机数

无约束条件下生成随机数
np.random.random(size)

生成服从均匀分布的随机数
np.random.rand(d1,d2,…,dn)

生成服从正态分布的随机数
np.random.randn()

生成给定上下范围的随机数
np.random.randint()

NumPy 数组索引

列表的索引是切片,一、二维数组的索引和列表类似。

从左往右的起始索引为0,从右往左的起始索引为负数-1

前闭后开的区间 [ x,y,p )
省略 x 表示从第0个开始
省略 y 表示到最后一个
p为步长,例如 p=2,表示隔一个取一个
前后都省略表示所有的

一维数组的例子

多维数组的索引

使用整数和布尔值索引访问数据
布尔值的向量长度要和索引的长度一致

变换数组的形态

1. 合并数组

一维数组转换二维数组:reshape

使用ravel函数展平数组

使用flatten函数展平数组

纵向、横向合并数组

hstack函数实现数组横向组合:np.hstack((arr1,arr2))
vstack函数实现数组纵向组合:np.vstack((arr1,arr2))

h表示水平横向,v表示垂直纵向

concatenate函数实现数组横向组合:np.concatenate((arr1,arr2),axis = 1))
concatenate函数实现数组纵向组合:np.concatenate((arr1,arr2),axis = 0))
仅需改变轴的数值即可

创建两个数组

合并数组

2. 切割数组

纵向切割、横向切割

使用hsplit函数实现数组横向分割:np.hsplit(arr1, 2)
使用vsplit函数实现数组纵向分割:np.vsplit(arr, 2)
使用split函数实现数组横向分割:np.split(arr, 2, axis=1)
使用split函数实现数组纵向分割:np.split(arr, 2, axis=0)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/714298.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号