python数据分析

Python是一种非常流行的编程语言,尤其在数据分析领域。Python拥有丰富的库和框架,可以帮助你执行各种数据分析任务。Python常用的数据分析工具之一:NumPy。

Numpy用于进行大规模数值和矩阵运算,提供了多维数组对象和一系列操作这些数组的函数。

numpy-base:

numpy-base是NumPy包的一个子集,它提供了NumPy的核心功能。以下是一些numpy-base包含的功能:

(1)多维数组对象(ndarray):NumPy的核心数据结构,用于存储同质数据类型的元素。

(2)数组创建和操作:创建数组,数组切片,数组拼接等。

(3)数学函数:执行基本的数学运算,如加减乘除,三角函数等。

(4)索引和切片:提供灵活的索引和切片操作来访问和修改数组中的元素。

(5)数据类型:定义和使用不同的数据类型,如整数,浮点数等。

1.创建NumPy类型的数组:

复制代码
import numpy as np
#创建一维数组:
d = np.arange(15)
print(d)
#创建二维数组:
d1 = d1.reshape(3,5)
print(d1)
#创建三维数组:
d2= np.arange(15).reshape(5,3)
print(d2)

创建数组的四种方式:

复制代码
import numpy as np
#方式1
data1 = np.arange(15).reshape(5,3)
print(data1)
#方式2
#创建全0矩阵
print(np.zeros(10))         #一维数组
print(np.zeros((2,5)))      #二维数组
print(np.zeros((2,3,4)))    #三维数组
#方式3
#创建创建全1矩阵
print(np.ones(10))          #一维数组
print(np.ones((2,5)))       #二维数组
print(np.ones((2,3,4)))     #三维数组
#方式4
print(np.empty((1,2,3)))

2.转换数据类型:

复制代码
import numpy as np

data = np.array([1,2,3,4,5,6])
#输出数据类型,类型为int。
print(data.dtype)

#类型转换 将int转化为float
data = np.array([1,2,3,4,5,6],dtype=np.float64)
#输出数据类型,类型为float。
print(data.dtype)

#类型转换 将float转化为int
data = data.astype(np.int32)
#输出数据类型,类型为int。
print(data.dtype)

3.索引与切片

索引和切片用于获取数组中部分的数据,尤其是切片

(1)索引
一维数组:
复制代码
import numpy as np

data = np.array([1,2,3,4,5,6])
print(data)
#获取数字4的值,通过下标值指向要获取的数据,下标值由0开始至无限大
print(data[3])
#负数从右侧向左侧数,通常情况用于获取最后一个数,[-2]为数组中的5
print(data[-2])
二维数组:
复制代码
import numpy as np

#创建一个2行7列的二维数组
data = np.arange(14).reshape(2,7)

#输出结果为[[0 1 2 3 4 5 6] [7 8 9 10 11 12 13]]
print(data)

#输出结果为第一行第五列,数据为4
print(data[0,4])

#输出结果为倒数第一行倒数第一列,数据为13
print(data[-1,-1])

#输出结果为倒数第一行倒数第一列和第一行倒数第一列,数据为13,6
print(data[-1,-1],data[0,-1])
三维数组:
复制代码
import numpy as np

#创建一个   [[[0 1 2 3 4]          的三维数组
#             [5 6 7 8 9]
#             [10 11 12 13 14]]
#
#            [[15 16 17 18 19]
#             [20 21 22 23 24]
#             [25 26 27 28 29]]]
data = np.arange(30).reshape(2,3,5)
print(data)

#输出结果为15
print(data[1,0,0])

#输出结果为14,29
print(data[0,2,-1],data[-1,-1,-1])

#同上,两种不同写法
print(data[0][2][-1],data[-1][-1][-1])
(2)切片
一维数组:
复制代码
import numpy as np

data = np.array([1,2,3,4,5,6])
#a~b,a<=x<b ,左闭右开

#输出结果为[1,2,3]
print(data[0:3])

#输出结果为[3,4,5,6]
print(data[2:])

#输出结果为[1,2,3,4]
print(data[:4])

#输出结果为[1,2,3,4]
print(data[:-2])
二维数组:
复制代码
import numpy as np

data = np.arange(14).reshape(2,7)
print(data)
#参数1:行参数
#参数2:列参数

#输出结果为[[7 8 9]]
print(data[1:,:3])

#输出结果为[[3][10]]
print(data[:,3:4])

#输出结果为[[10]]
print(data[1:,3:4])    
三维数组:
复制代码
import numpy as np

data = np.arange(30).reshape(2,3,5)
print(data)
print(data[0:1,:,0:2])
print(data[0:1,2:,0:2])
print(data[0:1,2:,:])

4.numpy数据运算:

复制代码
import numpy as np

a = np.random.random(10000)*10
b = np.random.random(10000)*10
print(a)
print(b)
#算术运算
#加
print(a+b)
print(np.add(a,b))
#减
print(a-b)
print(np.subtract(a,b))
#乘
print(a*b)
print(np.multiply(a,b))
#除
print(a/b)
print(np.divide(a,b))

#数学运算
ang = np.array([0,30,45,60,90,120,135,150,180])
rad = np.sin(ang*np.pi/180)
print(rad)

#统计运算
data = np.array([1,2,3,4,5])
#求平均值
print(data.mean())
print(np.average(data))
# 配置权重
print(np.average(data,weights=np.array([2,2,1,1,1])))
print(np.average(data,weights=np.array([1,1,1,2,2])))
#求中位数
print(np.median(data))
#求方差
print(np.var(data))
#标准差
print(np.std(data))

#聚合运算
#累加
print(np.sum(data))
#累乘
print(np.prod(data))
#求最大值
print(np.max(data))
#求最小值
print(np.min(data))

data = np.array([1,2,3,4,5])
#筛选,排序
#输出选中数据的下标值
print(np.where(data>3))
print(np.where(data>1))
print(np.where(data<3))
#排序
print(np.sort([5,3,7,9,1,4,2,3,6,8]))
print(np.sort([5,3,7,9,1,4,2,3,6,8])[::-1])

5.numpy的矩阵运算

复制代码
import numpy as np
#创建三行五列的矩阵
a = np.arange(15).reshape(3,5)
#创建三行五列的矩阵,数据从15-29
b = np.arange(15,30).reshape(3,5)
#创建一个一维数组
c = np.array([9,8,7,6,5])
print(a+c)
print(a-c)
print(a*c)
print(2*a)

d = np.arange(6).reshape(2,3)
print(d)
#T代表转置,将行向量转化为列向量
print(d.T)
相关推荐
databook5 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar6 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780516 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_6 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
RestCloud6 小时前
数据传输中的三大难题,ETL 平台是如何解决的?
数据分析·api
数据智能老司机13 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机14 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机14 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机14 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i14 小时前
drf初步梳理
python·django