Python_NumPy——入门学习(numpy排序操作、文件操作、常用函数,级联,切分)

作者:初次知晓
邮箱:lr_1052107892@outlook.com
笔记分享:百度网盘分享链接
百度云盘链接:https://pan.baidu.com/s/1VXHLlMsRvrzcY0d6W0LPsA?pwd=b8m1
提取码:b8m1

本人为中职在读学生,博客内容或有错误,我愿意接受并吸取任何人的意见
学习来源参考以下网站或视频:菜鸟教程,千锋教育系列视频,黑马程序员系列视频


初次知晓


文件操作

保存文件
save:保存数组至一个npy文件中
savez:将多个array保存到一个npz文件中
	语法:numpy.save(文件名,数组)
		x = np.arange(1,11)
		np.save('x',x)
	语法:numpy.savez()
		x = np.arange(1,11)
		y = np.arange(-10,0)
		np.savez('arr',xarr=x,yarr=y)
	xarr和yarr是保存在arr文件中的一个键(key)
		调用这个npz文件的对应数据时,需要用到
如果是要存到txt或csv文件,应该使用:save文件后缀名修改
	如: np.savetxt('x.txt',x)
	如果是csv文件,还需设置分隔符:np.savetxt('x.csv',x,delimiter=',')

读取文件
	语法:接收变量 = numpy.load(文件名)[键名]
		z = np.load('x.npy')
		print(z)
			[ 1  2  3  4  5  6  7  8  9 10]
		如果是读取npz文件
			z = np.load('arr.npz')
			print(z)
				<numpy.lib.npyio.NpzFile object at 0x000001ED120078B0>
			是一段乱码,如何解决呢?
				在保存npz文件时,我们写了两个键值对应数组,引用这个键即可
			z1 = np.load('arr.npz')['xarr']
			z2 = np.load('arr.npz')['yarr']
			print(z1)
			print(z2)
				[ 1  2  3  4  5  6  7  8  9 10]
				[-10  -9  -8  -7  -6  -5  -4  -3  -2  -1]
	如果是读取txt文件或者vsc文件,也需要使用loadtxt
		且读取csv文件时也需要设置分隔符和数据类型
			z = np.loadtxt('x.csv',delimiter=',',dtype=np.int16)
			print(z)
				[ 1  2  3  4  5  6  7  8  9 10]
			z = np.loadtxt('x.txt',dtype=np.int16)
			print(z)
				[ 1  2  3  4  5  6  7  8  9 10]

排序操作

语法:
numpy.sort(数组):不改变原数组
ndarray.sort(数组):改变原数组,不多占用空间

n1 = np.random.randint(10,size=10)
print(n1)
	[6 0 3 3 5 0 1 3 9 5]
print(np.sort(n1))
	[0 0 1 3 3 3 5 5 6 9]
np.ndarray.sort(n1)
print(n1)
[0 0 1 3 3 3 5 5 6 9]

常用数学函数

求绝对值:numpy.abs(数组)
求平方根:numpy.sqrt(数组)
求平方:  numpy.square(数组)
求指数(以e为底):numpy.exp(数组)
求对数(自然对数):numpy.log(数组)
numpy.log2(数组)、numpy.log10(数组)  #以二为底,以十为低
求正弦:numpy.sin(数组)
求余弦:numpy.cos(数组)
求正切:numpy.tan(数组)
求四舍五入值:numpy.round(数组,几位小数)
向上取整:numpy.ceil(数组)
向下取整:numpy.floor(数组)
累加运算:numpy.cumsum(数组) 前n项的和(第二项是前两位数的和)

数组的级联

级联:合并多个数组

语法:接收变量 = numpy.concatenate((数组1,数组2,…,数组n),axis=None)
级联的数组维度必须相同
axis表示级联的方向默认上下级联(如果是横向,行必须相同。纵向,列必须相同)
axis = 0,表示纵向(上下)级联
axis = 1,表示横向(左右)级联
例子:

a = np.arange(1,11)
b = np.arange(11,21)
	[ 1  2  3  4  5  6  7  8  9 10]
	[11 12 13 14 15 16 17 18 19 20]
c = np.concatenate((a,b))
print(c)
	[ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20]

水平级联:左右合并
语法:numpy.hstack((数组1,数组2,…,数组n))
垂直级联:上下合并
语法:numpy.vstack((数组1,数组2,…,数组n))

数组的切分/拆分/分割

语法:接收变量 = numpy.split(数组,几份(或者 按照指定位置),axis=None)  #拆分
	axis = 0 按行拆
	axis = 1 按列拆
接收变量 = numpy.vsplit(数组,几份(或者 按照指定位置)) #按行拆分(拆成几行..几行)
接收变量 = numpy.hsplit(数组,几份(或者 按照指定位置)) #按列拆分(拆成几列…几列)


a = np.arange(1,11)
b = np.arange(11,21)
c = np.concatenate((a,b))
	
	[[ 1  2  3  4  5]
	 [ 6  7  8  9 10]
	 [11 12 13 14 15]
	 [16 17 18 19 20]]
	
例子:d = np.split(c,2)
	  print(d)
	[array([[ 1,  2,  3,  4,  5],
	       [ 6,  7,  8,  9, 10]]), 
	array([[11, 12, 13, 14, 15],
	       [16, 17, 18, 19, 20]])]

数组的副本/复制/拷贝

	将一个数组的内容复制给另一个数组

语法:       接收变量 = 数组.copy()
	n1 = np.arange(10)
	n2 = n1.copy()
	print(n1,n2)
		[0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7 8 9]
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值