博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python程序设计之Numpy
阅读量:3966 次
发布时间:2019-05-24

本文共 4679 字,大约阅读时间需要 15 分钟。

Numpy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库!

Numpy简单创建数组

import numpy as np# 创建简单的列表a = [1,2,3,4]# 将列表转换为数组b = np.array(a)if __name__ == '__main__':    print(b)

输出结果:

在这里插入图片描述

Numpy查看数组属性

import numpy as np# 创建简单的列表a = [1,2,3,4]# 将列表转换为数组b = np.array(a)#数组元素的个数print(b.size)#数组形状print(b.shape)#数组维度print(b.ndim)#数组的元素类型print(b.dtype)

输出结果:

在这里插入图片描述

快速创建N维数组的api函数

import numpy as np# 快速创建N维数组的api函数array_one = np.ones([10, 10])if __name__ == '__main__':    print(array_one)

输出结果:

在这里插入图片描述

创建10行10列的数值为浮点0的矩阵:

import numpy as np# 创建10行10列的数值为浮点0的矩阵array_zero = np.zeros([10, 10])if __name__ == '__main__':    print(array_zero)

输出结果:

在这里插入图片描述

创建指定形状

import numpy as np# Numpy创建随机数组np.random# 均匀分布#创建指定形状(示例为10行10列)的数组(范围在0至1之间)print(np.random.rand(10, 10))

输出结果:

在这里插入图片描述

创建指定范围内的一个数

import numpy as np# Numpy创建随机数组np.random# 均匀分布# 创建指定范围内的一个数print(np.random.uniform(0, 100))

输出结果:

在这里插入图片描述

创建指定范围内的一个整数

import numpy as np# Numpy创建随机数组np.random# 均匀分布# 创建指定范围内的一个整数print(np.random.randint(0, 100))

输出结果:

在这里插入图片描述

给定均值/标准差/维度的正态分布

import numpy as np# Numpy创建随机数组np.random# 正态分布# 给定均值/标准差/维度的正态分布print(np.random.normal(1.75, 0.1, (2, 3)))

输出结果:

在这里插入图片描述

数组的索引,切片

import numpy as np# Numpy创建随机数组np.random# 正态分布# 数组的索引, 切片# 正态生成4行5列的二维数组arr = np.random.normal(1.75,0.1,(4,5))print(arr)# 截取第1至2行的第2至3列(从第0行算起)after_arr = arr[1:3,2:4]print(after_arr)

输出结果:

在这里插入图片描述

改变数组形状

import numpy as np# 改变数组形状(要求前后元素个数匹配)print("reshape函数的使用!")one_20 = np.ones([20])print("-->1行20列<--")print(one_20)one_4_5 = one_20.reshape([4,5])print("-->4行5列<--")print(one_4_5)

输出结果:

在这里插入图片描述

Numpy计算

条件判断:import numpy as np# Numpy计算# 条件判断stus_score = np.array([[80,88],[82,81],[84,75],[86,83],[75,81]])print(stus_score > 80)

输出结果:

在这里插入图片描述

三目运算:

import numpy as np# Numpy计算# 三目运算stus_score = np.array([[80,88],[82,81],[84,75],[86,83],[75,81]])# 如果数值小于80,替换为0,如果大于80,替换为90print(np.where(stus_score<80,0,90))

输出结果:

在这里插入图片描述

求最大值

import numpy as np# Numpy计算# 统计运算 —— 求最大值stus_score = np.array([[80,88],[82,81],[84,75],[86,83],[75,81]])# 指定轴最大值amax(参数1: 数组; 参数2: axis=0/1; 0表示列1表示行)print("每一列的最大值为:")result = np.amax(stus_score, axis=0)print(result)print("每一行的最大值为:")result = np.amax(stus_score, axis=1)print(result)

输出结果:

在这里插入图片描述

求最小值:

import numpy as np# Numpy计算# 统计运算 —— 求最小值stus_score = np.array([[80,88],[82,81],[84,75],[86,83],[75,81]])# 指定轴最小值amin(参数1: 数组; 参数2: axis=0/1; 0表示列1表示行)print("每一列的最小值为:")result = np.amin(stus_score, axis=0)print(result)print("每一行的最小值为:")result = np.amin(stus_score, axis=1)print(result)

输出结果:

在这里插入图片描述

指定轴平均值mean

import numpy as np# Numpy计算# 统计运算 —— 求平均值stus_score = np.array([[80,88],[82,81],[84,75],[86,83],[75,81]])# 指定轴平均值mean(参数1: 数组; 参数2: axis=0/1; 0表示列1表示行)print("每一列的平均值为:")result = np.mean(stus_score, axis=0)print(result)print("每一行的平均值为:")result = np.mean(stus_score, axis=1)print(result)

输出结果:

在这里插入图片描述

方差std

import numpy as np# Numpy计算# 统计运算 —— 求方差stus_score = np.array([[80,88],[82,81],[84,75],[86,83],[75,81]])# 指定方差std(参数1: 数组; 参数2: axis=0/1; 0表示列1表示行)print("每一列的方差为:")result = np.std(stus_score, axis=0)print(result)print("每一行的方差为:")result = np.std(stus_score, axis=1)print(result)

输出结果:

在这里插入图片描述

数组与数的运算

import numpy as np# Numpy计算# 统计运算 —— 数组与数的运算(加法)stus_score = np.array([[80,88],[82,81],[84,75],[86,83],[75,81]])print("加分前:")print(stus_score)# 为所有平时成绩都加5分stus_score[:,0] = stus_score[:,0]+5print("加分后:")print(stus_score)

输出结果:

在这里插入图片描述

import numpy as np# Numpy计算# 统计运算 —— 数组与数的运算(乘法)stus_score = np.array([[80,88],[82,81],[84,75],[86,83],[75,81]])print("减半前:")print(stus_score)# 为所有平时成绩都加5分stus_score[:,0] = stus_score[:,0]*0.5print("减半后:")print(stus_score)

输出结果:

在这里插入图片描述

数组间运算:

import numpy as np# Numpy计算# 统计运算 —— 数组间运算a = np.array([1,2,3,4])b = np.array([10,20,30,40])c = a + bd = a - be = a * bf = a / bprint("a+b为",c)print("a-b为",d)print("a*b为",e)print("a/b为",f)

输出结果:

在这里插入图片描述

矩阵运算np.dot()

计算规则

(M行, N列) * (N行, Z列) = (M行, Z列)

import numpy as np# Numpy计算# 矩阵运算:总成绩# 计算规则# (M行, N列) * (N行, Z列) = (M行, Z列)stus_score = np.array([[80,88],[82,81],[84,75],[86,83],[75,81]])# 平时成绩占40% 期末成绩占60%,计算结果q = np.array([[0.4],[0.6]])result = np.dot(stus_score,q)print("最终结果为:")print(result)

输出结果:

在这里插入图片描述

矩阵拼接

矩阵垂直拼接

import numpy as np# Numpy计算# 矩阵拼接# 矩阵垂直拼接print("v1为:")v1 = [[0,1,2,3,4,5],[6,7,8,9,10,11]]print(v1)print("v2为:")v2 = [[12,13,14,15,16,17],[18,19,20,21,22,23]]print(v2)#垂直拼接result = np.vstack((v1,v2))print("v1和v2垂直拼接的结果为")print(result)

输出结果:

在这里插入图片描述

矩阵水平拼接

import numpy as np# Numpy计算# 矩阵拼接# 矩阵水平拼接print("v1为:")v1 = [[0,1,2,3,4,5],[6,7,8,9,10,11]]print(v1)print("v2为:")v2 = [[12,13,14,15,16,17],[18,19,20,21,22,23]]print(v2)#垂直拼接result = np.hstack((v1,v2))print("v1和v2水平拼接的结果为")print(result)

输出结果:

在这里插入图片描述

Numpy读取数据np.genfromtxt

在这里插入图片描述

import numpy as np# Numpy读取数据np.genfromtxt# genfromtxt 设置csv文件读取路径,设置分隔符result = np.genfromtxt("./students_score.csv",delimiter=",")print(result)

输出结果:

在这里插入图片描述

转载地址:http://wayki.baihongyu.com/

你可能感兴趣的文章
Flutter UI基础 - 层叠布局Stack的使用
查看>>
Flutter UI基础 - webview 使用和交互
查看>>
Flutter UI基础 - 时间选择器
查看>>
Idea - 创建Java类时,自动在文件头中添加作者和创建时间
查看>>
Docker - ASP.NET Core Docker部署
查看>>
Docker - 容器运行 .Net Core
查看>>
Django - TypeError: __init__() missing 1 required positional argument: ‘on_delete‘ 的解决办法
查看>>
Go - 解决 go get 超时问题
查看>>
Go - goose 数据库迁移工具
查看>>
SQL - SQL Server 之遍历数据集合的几种方法
查看>>
SQL - SQL Server 之处理JSON数据
查看>>
SQL - SQL Server 之ETL详解
查看>>
SQL - SQL Server 之Merge函数使用详解
查看>>
SQL - SQL Server 之WHILE循环的坑
查看>>
SQL - SQL Server中如何获取当前年,月,日,时,分,秒
查看>>
SQL - SQL Server 性能优化之SQL语句总结
查看>>
Docker - docker-compose常用命令
查看>>
SQL - SQL Server判断字符串中是否有中文
查看>>
SQL - SQL Server查询近7天的连续日期
查看>>
SQL - SQL Server中如何取年、月、日 -DATEPART函数
查看>>