🐍Python数据分析(1)-NumPy数组操作
00 分钟
2023-4-11
2023-11-23
type
status
date
slug
summary
tags
category
icon
password
Email
文章首发于:My Blog 欢迎大佬们前来逛逛

1. ndarray数组对象

1.1 数组的属性

数组属性反应了数组本身具有的固定信息
  1. ndim:返回int,表示数组的维数
  1. shape:返回tuple,表示数组的尺寸,对于n行m列的数组,返回值是(n,m)
  1. size:返回int,表示数组的元素个数,等于数组的 n*m 的值
  1. dtype:返回 data_type,表示数组的元素类型
  1. itemsize:返回int,表示数组的每个元素的大小
测试如下:

1.2 数组的创建

numpy数组创建的三种方法:
  1. 利用python的原生数据类型:数组和元组进行转换为numpy的数组
  1. numpy的库中的原生数组的创建:zeros ones arange
  1. 特殊库函数创建: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 实现了不等量分割

评论
  • Twikoo
  • Valine