type
status
date
slug
summary
tags
category
icon
password
Email
文章首发于:My Blog 欢迎大佬们前来逛逛
1. ndarray数组对象
1.1 数组的属性
数组属性反应了数组本身具有的固定信息:
- ndim:返回int,表示数组的维数
- shape:返回tuple,表示数组的尺寸,对于n行m列的数组,返回值是(n,m)
- size:返回int,表示数组的元素个数,等于数组的 n*m 的值
- dtype:返回 data_type,表示数组的元素类型
- itemsize:返回int,表示数组的每个元素的大小
测试如下:
1.2 数组的创建
numpy数组创建的三种方法:
- 利用python的原生数据类型:数组和元组进行转换为numpy的数组
- numpy的库中的原生数组的创建:zeros ones arange等
- 特殊库函数创建:random
1.2.1 数组元组的转换
创建数组和元组,然后转化为ndarray
array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None)
object:接受的array,表示想要创建的数组原对象
dtype:数组元素的数据类型
ndmin:表示生成数组的默认维数
修改数组的属性:
1.2.2 Numpy的原生数组的创建
arange函数
arange([start,] stop[, step,], dtype=None, *, like=None)
start:起始值(可选值,默认为0)
stop:终止值(必选值)
step:步长(可选值,默认为1)
linspace函数生成等差数列
linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0):
start:起始值
stop:终止值
num:生成的元素数量
endpoint:stop处的元素是否显示
retstep:是否显示步长
dtype:数据类型
axis:轴向,0表示X轴
logspace函数
logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)
start:起始值
stop:终止值
num:生成的元素的数量
endpoint:是否包含终点元素
base:底数,默认为 10.0
dtype:数据类型
asix:轴向
1.2.3 特殊数组的创建
zeros:创建全0数组,ones创建全1数组
zeros(shape, dtype=float, order='C', *, like=None)
shape:是一个tuple元组,表示要生成的新数组的行与列
dtype:数据类型
order:创建多维数组时,行优先还是有列优先
eye:创建单位数组
对角线的元素为1,其他元素都是0
eye(N, M=None, k=0, dtype=float, order='C', *, like=None)
N,M:表示新生成数组的行与列,不是元组,这点与zeros不同,zeros的第一个参数为一个元素 ()
k:对角线的位置,如果k=0,则操作对角线为主对角线;如果k<0,则是较低的对角线;如果k>0,则是较高的对角线
diag:创建对角的数组
diag(v, k=0)
v:为一个一维数组时,一维数组的元素当作生成的这个二维数组的对角线元素值,其他元素都是零;为一个二维数组时,则生成这个二维数组的对角线元素
k:对角线的位置
1.2.4 random创建数组
random函数:生成随机浮点数
random(size=None)
size:表示尺寸,可以是一个随机数,或者一个随机元素列表
rand:生成均匀分布的随机数
rand(*dn)
- dn:表示从 d1 d2 d3 .... dn,表示数组的维数,生成 di 维的正态分布的随机数数组
注意与random 的区别,random接受的是一个n*m维的元组或者列表,rand接受的是n个参数,表示n维
randint:生成指定范围的随机数
randint(low, high=None, size=None, dtype=None)
low:表示最底范围
high:表示终止范围
size:表示数组的shape,注意不是元素个数
dtype:数据类型
1.2 访问数组
一维数组的访问:
二维数组的访问:
1.3 改变数组的形状
1.3.1 reshape
reshape改变数组的形状,就是改变数组的维度
reshape(self, shape, order='C')
shape:改变的数组的新的尺寸
这两种方式是等价的,加不加 元组类型都是一样的。
注意:reshape不会改变原始数据的形状
1.3.2 resize
resize修改数组的形状:
resize(self, new_shape, refcheck=True)
new_shape表示一个新的形状,可以为n个ins或者一个表示形状的元组
注意:resize 没有返回值,并且resize 的改变会改变原来的数组的尺寸形状
NumPy还提供有重名的函数:np.resize,这个版本可以返回一个改变后的数组
1.3.3 flatten
数组的展平工作:将多维数组转变为一维数组
1.3.4 合并
hstack可以横向合并数组
接受一个元组,元组中包含需要合并的数组:
注意:需要合并的两个数组的尺寸必须是一样的
vstack可以纵向合并数组
concatenate此函数也可以实现合并数组:并且还可以自己指定是横向还是纵向:
1.3.5 分割
np.split 实现了横向或者纵向分割数组:
注意:split是等量 分割,第二个参数指明了等量分割的数量
np.array_split 实现了不等量分割
- 作者:Yuleo
- 链接:https://www.helloylh.com/article/pythonDataAnalyze1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。