python数据分析之numpy学习二

本文介绍NumPy中的数据存取方法,包括CSV文件的一维/二维数组存取及多维数据存取技巧。此外,还介绍了NumPy提供的随机数生成函数、统计函数和梯度函数,并详细阐述了图像的数组表示及其变换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 数据存取与函数

一维/二维

数据的CSV文件存取

CSV(Comma-Separated Value,逗号分隔值)CSV是一种常见的文件格式,用来存储批量数据。

1 存储 np.savetxt(frame,  array,  fmt='%.18e',  delimiter=None)

参数含义
frame文件,字符串,或产生器,可以是.gz或.bz2的压缩文件
array存入文件的数组
fmt写入文件的格式,如%d  %.2f  %.18e
delimiter分隔字符串,默认为任何空格

可以看出文件的存储以空格分隔数据

以记事本打开(以逗号隔开)

以excel打开(没有逗号,但是每个元素占据不同格)

2 打开文件np.loadtxt(frame,  dtype=np.float,  delimiter=None,    unpack=False)

unpack如果是True,读入属性将分别写入不同变量

3  CSV文件的局限性

CSV文件只能有效存储一维和二维数组。

多维数据的存取

1 数据存储  a.tofile(frame,  sep='',    format='%s')

参数含义
frame文件,字符串
sep数据分隔字符串,如果是空串,写入文件为二进制
format写入文件的格式

为一行数据,没有区分维度

2 数据读取 np.fromfile(frame,dtype=float,count=-1,sep='')

count为读入元素的个数,-1表示读入整个文件

但是该方法读取时需要知道存入文件时数组的维度和元素类型,a.tofile()和np.fromfile()可以配合使用,可以通过元数据文件来存储额外的信息

 

NumPy的便捷文件存取

np.save(frame,array)或np.savez(frame,array)

参数说明
frame文件名,以.npy为扩展名,压缩文件为.npz
array数组变量

np.load(frame)

用记事本打开之后可以看到维度信息。

二 NumPy的随机数函数

函数说明
rand(shape)浮点数,【0,1)均匀分布的浮点数,随机数数组
randn(shape)标准正态分布的随机数数组
randint(low,high,shape)范围是[low,high),随机整数或整数数组
seed(s)随机数种子,s是给定的种子值。只要每次调用随机数函数之前都给定相同的种子,所产生的随机数是相同的

函数说明
shuffle(a)根据数组第0轴(最外层)进行随机排列,即最外层之间的顺序发生变化,改变数组a
permutation(a)同shuffle但改变数组a
choice(a,shape,replace=False,p)一维数组a中以概率p抽取元素,形成shape形状新数组,replace表示是否可以重用数组,默认为True

函数说明
uniform(low,high,shape)产生均匀分布的数组
normal(loc, scale,  shape)产生具有正态分布的数组,loc为均值,scale为标准差.
poisson(lam,shape)产生具有泊松分布的数组,lam为随机事件发生率,size为形状

三 Numpy的统计函数

函数说明
sum(a,axis=None)根据给定轴axis计算数组a的相关元素之和,axis为整数或元组
mean(a,axis=None)根据给定轴axis计算数组a的相关元素的期望,axis为整数或元组
average(a,axis=None,weights=None)根据给定轴axis计算数组a的相关元素加权平均值
std(a,axis=None)根据给定轴axis计算数组a的相关元素标准差
var(a,axis=None)根据给定轴axis计算数组a的相关元素方差

axis=None是默认参数

函数说明
min(a) max(a)计算数组元素a中的最大值,最小值
argmin(a)  argmax(a)计算数组a中元素最小值,最大值的降一维后下标
unravel_index(index,shape)根据shape将一维下标index转换为多维下标
ptp(a)计算数组a中元素最大值与最小值的差
median(a)计算数组a中元素的中位数(中值)

四 Numpy的梯度函数

函数说明
np.gradient(f)计算数组f中元素的梯度,当f为多维数组时,返回每个数组的梯度

梯度:连续值之间的变化率,即斜率。

XY坐标轴连续三个X坐标对应的Y轴值:a,b,c。则b的梯度为(c-a)/2

五 图像

图像一般使用RGB色彩模式,即每个像素的颜色由红,绿,蓝组成。

 RGB三个颜色通道的变化和叠加得到各种颜色,其中R(0-255),G(0-255),B(0-255)

PIL库是一个具有很强大图像处理能力的第三方库。 from PIL import Image

Image是PIL库中代表一个图像的类(对象)

图像是一个由像素组成的二维矩阵,每个元素是一个RGB值(3个字节),即每个图像是由三个字节作为元素组成的二维矩阵。

1 图像的数组表示

图像是一个三维数组,维度分别是高度,宽度和像素RGB值。

2图像的变换

读入图像之后,获取像素RGB值,修改后保存为新的文件。

图像变换的基本流程

首先打开一个图像,然后对其RGB值进行运算,再把运算后的数组生成一个图像类型保存为文件。

 

convert指的是将彩色图片变化为灰度值的图片,生成二维数组而不是三维数组,每个元素不对应RGB的值,而是对应一个灰度值。

图像的手绘效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值