numpy python2_python-numpy(2)
接着上一部分
# 开头我就在说numpy是python 的一个科学计算包,具体体现在哪呢?
# 用下面的例子看一下
a = [[1, 2, 3], [5, 7, 8], [4, 5, 6]]
b = [[6, 2, 1], [2, 3, 1], [4, 5, 6]]
# 需求;比如我想把上边的a,b相加怎样做
# 第一种做法:python 原生态做法
# 我们现根据列表的形状,创建一个空数组用于接收结果
c=[[0,0,0],[0,0,0],[0,0,0]]
for i in range(3):
for j in range(3):
c[i][j]=a[i][j]+b[i][j]
print(c)
[[7, 4, 4], [7, 10, 9], [8, 10, 12]]
# 第二种做法:
a1=np.array(a)
a2=np.array(b)
c1=a1+a2
print(c)
c1 # 这个时候还是数组
c2=c1.tolist() # 数组转换为列表
c2
# 对比两种做法,numpy 更加块,更加简洁
[[7, 4, 4], [7, 10, 9], [8, 10, 12]]
[[7, 4, 4], [7, 10, 9], [8, 10, 12]]
# Numpy中的基本运算(加、减、乘、除、求余等等)都是元素级别的,但是这仅仅局限于两个数组的形状相同的情况下
print(a1-a2)
print(a1*a2)
print(a1/a2)
print(a1//a2)
# 数组之间的运算,
# 第一种情况是,两个数组的形状相同,对应位置相加,减,乘除,求余
# 第二种情况要是形状不相同呢?
# 先看一个例子
a1=np.arange(3)
b1=np.ones((3,3)) # 先不用了解ones,这个主要看原理
c1=np.ones((3,1))
print(a1+5)
print()
print(b1+a1)
print()
print(a1+c1)
# 我们可以看到,数组a1,每个元素都+5,这是为什么呢,这个时候就有一个广播机制
# 广播机制:当把一个低维和一个高维数据进行计算时,会自动将低维数据拉伸到和高维相同的形状,然后进行对应元素位置操作
# 其他运算
a1=np.arange(3)
b1=np.ones((3,3))
c1=np.ones((3,1))
print(a1,b1,c1)
print()
print(a1**2) # 平方
print(np.sqrt(a1)) # 开方
print(np.exp(a1)) # 指数
print(np.log(a1)) # 对数
# 常用的简单的运算函数
ar=np.arange(3)
print(ar.mean()) # 求平均值
print(ar.max()) # 求最大值
print(ar.min()) # 求最小值
print(ar.std()) # 求标准差
print(ar.var()) # 求方差
print(ar.sum()) # 求和
1.0
2
0
0.816496580927726
0.6666666666666666
3
小练习
一家连锁店,A门店最近5天的营业额数据为: 1200,1398,2200,1100,1521
B门店5天营业额为: 1340,1211,1460,1121,1609
计算连锁店每天的总收入
计算连锁店5天的总收入
计算A店和B店的销售额的对数差
(不做)计算A店和B店每天销售量更高的是哪个店?
创建常用数组
### 创建一个全0数组,默认float型
# 语法:np.ones(shape,dtype) shape:形状
a1=np.ones(1) # 一维的
a2=np.ones((1,1)) # 二维以上写(),[]都可以,shape的第一个参数可以理解为几行,第二个参数为几列
a3=np.ones([1,2])
print(a1,a2,a3,sep="\n")
print()
a4=np.ones((2,3,4))
print(a4)
# 三维理解:
# 第一个数2:三维中有2个二维平面构成三维体
# 3:每个二维元素由3个一维元素组成
# 4 :每个一维元素由4个0位元素组成
a5=np.ones_like(a4)
print(a5)
# 返回具有与给定数组相同的形状和类型的零数组
# 创建一个全是1的数组,跟ones 一模一样
# 语法:np.zeros(shape,dtype) ,默认输出也是float型的,也可以指定类型,不说
a1=np.zeros(1) # 一维的
a2=np.zeros((1,1))
a3=np.zeros([1,2])
print(a1,a2,a3,sep="\n")
print()
a4=np.zeros((2,3,4))
print(a4)
print()
a5=np.zeros_like(a4)
print(a5)
# 创建单位矩阵
# np.eye(n,m,k) n:行,m:列,k:偏移量,m=n 可以不用写
# 创建一个单位矩阵,对角线值为1,其余为0
a=np.eye(5) # 只有一个参数时,#创建一个正方的N*N的单位矩阵,对角线值为1,其余为0
a1=np.eye(4,3) # 这个跟ones,zeros,创建数组形状不一样
print(a,a1,sep="\n")
print()
a2=np.eye(4,4,-1) # k<0:代表对角线向下移,>0 :代表向上移
print(a2)
# 创建等差数组
# 语法:linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None):返回在间隔上计算的num个均匀间隔的样本。默认返回float
# start:起始值,stop:结束值
# num:生成样本数,默认为50
# endpoint:如果为真,则停止是最后一个样本。否则,不包括在内。默认值为True。
# retstep:如果为真,返回(样本,步长),其中步长是样本之间的间距 → 输出为一个包含2个元素的元祖,第一个元素为array,第二个为步长实际值
print(np.linspace(1,10,4) )#
print()
print(np.linspace(1,10,4,endpoint=False))
print(np.linspace(1,10,4,retstep=True))
[ 1. 4. 7. 10.]
[1. 3.25 5.5 7.75]
(array([ 1., 4., 7., 10.]), 3.0)
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
#choice 从一维数组中生成随机数
# 第一参数是一个1维数组,如果只有一个数字那就看成range(5)
# 第二参数是维度和元素个数,一个数字是1维,数字是几就是几个元素
# 比如:a = np.random.choice(5,3) print(f'从range(5)中拿随机数,生成只有3个元素的一维数组是:{a}')
arr1=np.random.choice(5,3)
arr1
arr2=np.random.choice(6,(2,3))
arr2
arr3=np.random.choice([1,2,77,55],2)
arr3
arr2
np.random.shuffle(arr2) # 打乱顺序
arr2
### 小练习:
1. 生成一个6行6列的单位矩阵数组,数据类型为字符串
2. 生成一个(2,3,4)的数组,并使用无穷大进行填充
3. 生成5,15的随机整数数组,形状为(3,6)
4. 生成3行4列的标准正态分布数组
5. 生成均值为10,标准差为5的(7,3)的正太分布
6. 生成从12到22,步长为2的序列
7. 生成从12到22的序列,序列的长度为100个
继续
numpy python2_python-numpy(2)相关推荐
- numpy 打乱 numpy 数组
numpy 打乱 numpy 数组 import numpy as np a1 = np.arange(0,8).reshape(4,2) print(a1) [[0 1][2 3][4 5][6 7 ...
- Py之Numpy:Numpy库中常用函数的简介、应用之详细攻略
Py之Numpy:Numpy库中常用函数的简介.应用之详细攻略 目录 Numpy库中常用函数的简介.应用 1.X, Y = np.meshgrid(X, Y) 相关文章 Py之Numpy:Numpy库 ...
- B03_NumPy创建数组(numpy.empty,numpy.zeros,numpy.ones)
NumPy创建数组 ndarray数组除了可以使用底层ndarray构造器来创建外,也可以通过以下几种方式来创建. numpy.empty numpy.empty 方法用来创建一个指定形状(shape ...
- Python第三方包-你了解numpy吗(numpy进阶)
创建数组等基础操作见:Python第三方包-你了解numpy吗(numpy基础)_周先森爱吃素的博客-CSDN博客 索引和切片 基本切片:可以使用slice对象切片,也可以像python内置类型一样. ...
- python 初始化数组 numpy,Python Numpy 数组的初始化和基本操作
Python 是一种高级的,动态的,多泛型的编程语言.Python代码很多时候看起来就像是伪代码一样,因此你可以使用很少的几行可读性很高的代码来实现一个非常强大的想法. 一.基础: Numpy的主要数 ...
- 【numpy】numpy.ones()函数
[汇总]numpy里的一些函数 numpy.ones() numpy.ones(shape, dtype=None, order='C') 返回值: 返回值类型 : ndarray 具有给定形状,数据 ...
- [转载] numpy.dot numpy.linalg.eig numpy.linalg.svd np.linalg.inv 用法 + 例子
参考链接: Python中的numpy.dot numpy.dot() x是mn 矩阵 ,y是nm矩阵 则x.dot(y) 得到m*m矩阵 >>> np.dot(3, 4) 12 & ...
- [转载] 【numpy】numpy.ones()函数
参考链接: Python中的numpy.ones [汇总]numpy里的一些函数 numpy.ones() numpy.ones(shape, dtype=None, order='C') 返回值: ...
- numpy基础—numpy的轴
0轴是行,1轴是列,2轴是纵深 数组的shape维度是(4,3,2),元组的索引为 [ 0,1,2 ] 假设维度是(2,3),元组的索引为[0,1] 假设维度是(4,) 元组的索引为[0] 总结:凡是 ...
- Numpy库 numpy.corrcoef()函数
相关系数公式: 其他详见: 1. Python Numpy库 numpy.corrcoef()函数讲解 2. 协方差.方差.标准差.协方差系数 3. 标准差.方差.协方差三者的表示意义
最新文章
- Localhost与数据库连接
- Xml解析之PULL解析 例1
- sdcard不可执行.
- C#实现(递归和非递归)快速排序和简单排序
- CMap在用CString做key类型时,ARG_KEY要选LPCTSTR
- 【Linux】普通用户修改 root 权限文件,没有权限;sudo: 没有终端存在,且未指定 askpass 程序
- spring bean加载过程_Spring源码剖析3:Spring IOC容器的加载过程
- 数组 边界 检查的几种实现方法
- 新手上路之django项目开发(二)-----mysql数据库配置及其增删改查操作
- 2018年计算机应用基础性考,2018年电大计算机应用基础核心课形考册
- jquery 几个实用的小方法
- mongodb的初步使用
- turtlesim画正方形代码对比
- 再度递表港交所,“快”能否成为绿茶餐厅突围的筹码?
- 广域网、城域网、局域网、个人区域网的不同
- 使用python构建数据库_使用Python构建(半)自主无人机
- 2021年最热门的7种编程语言,我选python,你选什么?
- 解决 el-checkbox-group 值为对象的时候 复选框回显问题
- 北大青鸟IT教育14%股权挂牌转让
- Yum工具详解(二)-----Yum配置阿里源
热门文章
- php 配置 关闭警告,php warning 关闭的方法
- nginx alias正则表达式
- make menuconfig错误
- 有没有可以翻译c语言程序的软件下载,程序员秒懂!分享一款很优雅的翻译软件...
- ppt格式刷快捷键_高效地制作PPT
- sqlu8多阶级层次bom_男性比女性多3164万:性别比例失衡,为何还有那么多剩女?...
- keil查看程序运行时间_你知道 KEIL 自带示波器吗?
- python 上传文件夹,python – 使用Flask上传文件夹/文件
- 电脑上显示没有其他服务器服务,电脑显示没有远程服务器地址
- android 关于页面,解析android中的帮助、about、关于作者、HELP等提示页面