数组是python的主角之一,以下会记录数组的创建方法和应用
Numpy——用它来进行数组创建
在开始之前先来了解Numpy,NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
Numpy怎么安装呢?
最简单的方法是下载以下的 Python 发行版,它们包含了所有的关键包(包括 NumPy,SciPy,matplotlib,IPython,SymPy 以及 Python 核心自带的其它包)
由于我们已经安装了 Anaconda: 免费 Python 发行版,所以自带了Numpy,不用另外安装了。
如果没有安装Numpy,可以通过以下pip语句安装:
//安装
! pip install numpy
//导入
import numpy as np
创建一个 ndarray(N维数组) 只需调用 NumPy 的 array 函数即可:
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
参数说明:
object 数组或嵌套的数列
dtype 数组元素的数据类型,可选
copy 对象是否需要复制,可选
order 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
subok 默认返回一个与基类类型一致的数组
ndmin 指定生成数组的最小维度
数组产生
数组产生方法:
- 通过list
- 通过tuple
- 通过list of list
- 通过list of tuple
- 通过function
- arange-等差数组
- linspace-等差数组
- logspace-等比数组
- zeros-全0数组
- ones-全1数组
- random-随机数组
自定义数组
#引入numpy
import numpy as np;
#list产生数组
np.array([3,2])
#list of list
np.array([[3,2]])
#二维list
np.array([3,2],ndmin=2)
#tuple
np.array((3,2))
#二维list
np.array((3,2),ndmin=2)
#二维数组
np.array([[3,2],[3,4]])
np.array([(2,3),(3,4)])
#设置数据类型
np.array([[1,2],[3,4]],dtype='float')
np.array([[1,2],[3,4]],dtype='str')
等差数组
1、使用arange函数,参数为开始、结束、等差值
image.png
使用reshape函数可以设置维度,参数为行数、列数
image.png
当列数为-1时,自动计算适配,不用我们自己计算
image.png
设置数据类型
image.png
2、使用linspace设置等差数列,参数为开始、结束,数据个数
image.png
等比数列
使用lospace设置等比数列,参数为开始、结束,数据个数,等比base(默认是10)
image.png
全0\1数组
image.png随机数组
image.png需要固定随机结果,设置seed:
image.png
随机生成正太分布数据
image.png
随机生成整数数据
image.png
数组属性
image.pngndarray.ndim 秩,即轴的数量或维度的数量
ndarray.shape 数组的维度,对于矩阵,n 行 m 列
ndarray.size 数组元素的总个数,相当于 .shape 中 n*m 的值
ndarray.dtype ndarray 对象的元素类型
ndarray.itemsize ndarray 对象中每个元素的大小,以字节为单位
ndarray.flags ndarray 对象的内存信息
ndarray.real ndarray元素的实部
ndarray.imag ndarray 元素的虚部
ndarray.data 包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。
数组转置
image.png
数据选择
一维数组选择
image.png
-
索引选择
image.png -
切片选择:切出一部分,参数:头索引、尾索引,间隔
image.png
多维数组选择
image.png
-
索引选择
image.png -
切片选择
注意:冒号和三个省略号作用一致
image.png
image.png条件选择
数组计算
image.pnga=np.array([[1,2,3,4],[5,6,7,8]])
#求和
np.sum(a)
#按行求和
np.sum(a,axis=1)
#按列求和
np.sum(a,axis=0)
#累积求和
np.cumsum(a)
#按行累积
np.cumsum(a,axis=1)
#求均值
np.mean(a)
#按行求均值
np.mean(a,axis=1)
#求均值
np.average(a)
#加权求均值
np.average(a,axis=1,weights=[1,2,3,4])
#求中位数
np.median(a)
#按行求中位数
np.median(a,axis=1)
#求百分位数
np.percentile(a,q=[50,100])
#求方差
np.var(a)
#求标准差
np.std(a)
#求最小值
np.min(a)
#求最大值
np.max(a)
#按列求最小值
np.min(a,axis=0)
#求最大值索引
np.argmax(a)
#四舍五入
np.round([1.3,4.5,3.9])
np.floor([1.3,4.5,3.9])
np.ceil([1.3,4.5,3.9])
#排序
np.sort(a)
#倒序
-np.sort(-a)
#选择
np.where(a>50,">50",'<=50')
#提取
np.extract(a>50,a)
数组拷贝
-
深拷贝:copy函数,修改拷贝数组,不会影响原来的数组
image.png -
浅拷贝:view函数,拷贝出来的数组,被修改会同时修改原来的数组
image.png
image.png
image.png
数组展开和合并
- 二维数组展开成1维数组
-
flat属性展开
flatten方法展开(可以有order属性,order='C'按行展开(默认),order='F'按列展开)
image.png
image.png
image.png -
两个数组合并:按行合并(hstack函数,两个数组必须维度相同)
image.png
String基本操作
-
大小写
image.png -
分割合并
使用char包中的split函数分割,默认空格分割
image.png
使用join函数合并
image.png -
寻找替换
image.png
image.png
数据保存
-
单文件保存,npx
image.png
image.png -
多文件保存,npz
image.png
image.png
image.png
image.png -
txt保存
image.png
image.png
网友评论