数据分析(numpy)

1. 什么是numpy

快速,方便的科学计算基础库(主要是对数值的计算、多维数组的运算);

2. numpy轴的理解

一维数组: [1,2,3,45]					----0轴
二维数组: [[1,2,3,45], [1,2,3,45]]	----0轴, 1轴(类似于x轴和y轴)

3. 常用操作

3.1 numpy中创建数组(矩阵):
	方法1:
	a = np.array([1,2,3,4,5])
	b = np.array([1,2,3,4,5])
	c1 = np.array(range(1,6))
	print(a+b)
	方法2:
	c2 = np.arange(1,6)
	print(c1)
	print(c2)
3.2 查看数组类名:
	type(c)
3.3 查看数据元素类型:
	c.dtype
3.4 修改数组的数据类型:
	c.astype('float')
	c1.astype('bool')
3.5 创建数据时指定数据类型:
	np.array([1,2,3,4], dtype=np.float)
3.6 修改浮点数的小数位:
	c = np.array([1.234556, 3.45464456, 5.645657567])
	np.round(c, 2)
3.7 读取数据:
	import numpy as np
	fname = "data.txt"
	dtype = np.dtype([('gender', '|S1'), ('height', 'f2')])
		# fname: 文件的名称, 可以是文件名, 也可以是ugz或者bz2的压缩文件;
		# dtype: 数据类型, 可选, 默认是float;
		# delimiter: 分隔符字符串, 默认情况是任何的空格,
		# skiprows: 跳过前xx行, 一般情况跳过第一行;
		#  usecols: 读取指定的列, 可以是元组;
		# unpack: 如果为True, 对返回的数组对象转置;
	data = np.loadtxt(fname=fname, dtype=dtype, skiprows=9, usecols=(1, 3), unpack=True)
	print(data)
3.8 数组转置:
	将一维数组转换为3行4列的二维数组
	data = np.arange(12).reshape((3, 4))
	print(data)
	转置
	data.transpose()
	data.swapaxes(1, 0)
	data.T
3.8 索引及切片:
	取第一行的数据
		print(data[0])
	取第一列的数据
		print(data.T[0])
		print(data[:, 1])
	获取多行
		print(data[:2])
	获取多行列
		print(data.T[:2])
		print(data[:, :2])
	获取指定行的前几列;
		print(data)
		print(data[[0,2], :2])
		print(data[:2, [0,2]])
	布尔索引(返回一个布尔类型的列表):
		data > 10
3.9 数值修改:
	1). data中所有大于8的数字都替换为0, 否则替换为1
		np.where(data <= 8, 1, 0)
	2). 如果data<=8, 替换称8, 如果data>=10, 替换为10
		data.clip(8, 10)
3.10 数组拼接:
	横向拼接:np.hstack((t1, t2))
	水平拼接:np.vstack((t1, t2))
3.10 行列交换:
	行交换:t[[0, 3], :] = t[[3, 0], :]		(t中的第3行到第0行赋值给t中的第0行至第3行)
	列交换:t[[:, [0, 3] = t[:, [3, 0]]		(t中的第3列到第0列赋值给t中的第0列至第3列)
3.11 获取最大值和最小值位置:
	获取当前数组里面最大值的索引:np.argmax(data)
	获取每一列的最大值对应的0轴索引:np.argmax(data, axis=0)
	获取每一行的最大值对应的1轴索引:np.argmax(data, axis=1
3.12 创建一个全为0的数组:
	np.zeros((3, 3), dtype=np.int)
3.13 创建一个全为1的数组:
	np.ones((3, 4))
3.14 创建一个对角线全为1的正方形数组(方阵):
	np.eye(3)

猜你喜欢

转载自blog.csdn.net/qq_43281189/article/details/87981912