Python---Numpy相关知识(学习笔记)

本文介绍了数据分析必备库NumPy,详细讲解了如何创建和操作数组,包括组合与切割,还深入探讨了NumPy的矩阵功能及统计分析方法,如排序、去重和数学统计。

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

数据分析必备库:numpy

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

import numpy as np #导入 NumPy 库 
numpy数组创建
arr1 = np.array([1, 2, 3, 4]) #创建一维数组
arr1 = np.array([0, 1, 2, 3, 4], dtype=np.int32) #创建浮点型一维数组 , bool/float/int/str/complex/np.int32/np.int64...
print(' 创建的数组为: ',arr1)
print('数组类型为:',arr1.dtype)  #查看数组类型
arr2 = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])
print('创建的数组为:\n',arr2)
print('数组类型为:',arr2.dtype)  #查看数组类型
print('数组元素个数为:',arr2.size)  #查看数组元素个数
print('数组每个元素大小为:',arr2.itemsize)  #查看数组每个元素大小
np.arange(0, 1, 0.1))    #0到1,步长为0.1
np.linspace(0, 1, 12))   #0到1,等差数列
np.logspace(1, 9, 10, base=2))  # 等比数列,(1, 9, 10)表示从1到9分为10个数,这十个数就是2的指数
2**np.linspace(1, 9, 10)  # 效果同等比序列
# 无约束条件下生成10个随机数
print('生成的随机数组为:',np.random.random(10))

# 生成服从均匀分布的随机数:2行5列0-1的随机数
print('生成的随机数组为:\n',np.random.rand(2, 5))

# 生成服从正态分布的随机数:2行5列服从正态分布的随机数
print('生成的随机数组为:\n',np.random.randn(2,5))

# 生成给定上下范围的随机数,如创建一个最小值不低于 2、最大值不高于 10 的 2 行 5 列数组
print('生成的随机数组为:',np.random.randint(2, 10, size = [2,5]))
组合数组、切割数组
arr1 = np.arange(12).reshape(3,4)
print('创建的arr1为:\n',arr1)

arr2 = arr1*3
print('创建的arr2为:\n',arr2)
print('横向组合为:\n',np.hstack((arr1,arr2)))  #hstack函数横向组合

print('纵向组合为:\n',np.vstack((arr1,arr2)))  #vstack函数纵向组合

print('横向组合为:\n',np.concatenate((arr1,arr2),axis = 1))  #concatenate函数横向组合
print('纵向组合为:\n',np.concatenate((arr1,arr2),axis = 0))  #concatenate函数纵向组合
arr = np.arange(16).reshape(4,4)
print('创建的二维数组为:\n', arr)
print('横向分割为:\n', np.hsplit(arr, 2))  #hsplit函数横向分割

print('纵向分割为:\n', np.vsplit(arr, 2))  #vsplit函数纵向分割

print('横向分割为:\n',np.split(arr, 2, axis=1))  #split函数横向分割
print('纵向分割为:\n',np.split(arr, 2, axis=0))  #split函数纵向分割

numpy矩阵

import numpy as np
mat = np.matrix('1 2; 3 4')  #矩阵
mat.T #转置
mat.H #共轭转置
mat.I #矩阵的逆

import numpy.matlib 
import numpy as np 
print (np.matlib.identity(5))  #单位矩阵

numpy统计分析

1、排序
arr = np.random.randint(1,10,size = 10) 
arr.sort()  #直接排序
arr.sort(axis = 1)  #沿着横轴排序
arr.sort(axis = 0)  #沿着纵轴排序
arr.argsort()  #argsort函数返回值为重新排序值的下标
2、去重
names = np.array(['小明', '小黄', '小花', '小明', '小花', '小兰', '小白'])
print('创建的数组为:',names)
print('去重后的数组为:',np.unique(names))
3、数学统计
arr = np.arange(20).reshape(4,5)
print('创建的数组为:\n',arr)
print('数组的和为:',np.sum(arr))  #计算数组的和
print('数组横轴的和为:',arr.sum(axis = 0))  #沿着横轴计算求和
print('数组纵轴的和为:',arr.sum(axis = 1))  #沿着纵轴计算求和
print('数组的均值为:',np.mean(arr))  #计算数组均值
print('数组横轴的均值为:',arr.mean(axis = 0))  #沿着横轴计算数组均值
print('数组纵轴的均值为:',arr.mean(axis = 1))  #沿着纵轴计算数组均值
print('数组的标准差为:',np.std(arr))  #计算数组标准差
print('数组的方差为:',np.var(arr))  #计算数组方差
print('数组的最小值为:',np.min(arr))  #计算数组最小值
print('数组的最大值为:',np.max(arr))  #计算数组最大值
print('数组的最小元素为:',np.argmin(arr))  #返回数组最小元素的索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值