day4--numpy
numpy—科学计算库
e的次幂,开根号
import numpy as np
B = np.arange(3)
print(B)
print(np.exp(B))
print(np.sqrt(B))
—[0 1 2]
[ 1. 2.71828183 7.3890561 ]
[ 0. 1. 1.41421356]ravel 是将一个矩阵拉平成一个向量,即用向量的形式表示这个矩阵。而a.shape(6,2)又将一个向量转换为一个62的矩阵。a.T表示求矩阵a的一个转置矩阵 行和列进行变换。(如果整形操作中给定的维度为-1,则自动计算其他维度)
a = np.floor(10np.random.random((3,4)))
print(a)
print(a.shape)
print(a.ravel())
a.shape = (6, 2)
print(a)
print(a.T)
a.resize((2,6))
print(a)
a.reshape(3,-1)
print(a)
—[[ 4. 9. 9. 9.]
[ 7. 1. 0. 9.]
[ 0. 4. 4. 9.]]
(3, 4)
[ 4. 9. 9. 9. 7. 1. 0. 9. 0. 4. 4. 9.]
[[ 4. 9.]
[ 9. 9.]
[ 7. 1.]
[ 0. 9.]
[ 0. 4.]
[ 4. 9.]]
[[ 4. 9. 7. 0. 0. 4.]
[ 9. 9. 1. 9. 4. 9.]]
[[ 4. 9. 9. 9. 7. 1.]
[ 0. 9. 0. 4. 4. 9.]]
[[ 5. 2. 2. 7.]
[ 5. 3. 2. 8.]
[ 8. 0. 2. 6.]]
- np.hstack((a,b)) 将a矩阵和b矩阵进行横向拼接;np.vstack((a,b))将a矩阵和b矩阵进行纵向拼接;
a = np.floor(10np.random.random((2,2)))
b = np.floor(10np.random.random((2,2)))
print(a)
print(’—’)
print(b)
print(’—’)
print(np.hstack((a,b)))
—[[ 0. 1.]
[ 2. 6.]]
—[[1. 0.]
[4 .1 ]]
[[ 0. 1. 1. 0.]
[ 2. 6. 4. 1.]]
- hsplit是对行进行切分 a表示待切分的行参数 3表示切分成三份;np.hsplit(a,(3,4)) 传入元组 指定位置进行切割;vsplit是对列进行切分 a表示待切分的行参数 3表示切分成三份
a = np.floor(10np.random.random((2,12)))
print(a)
print(np.hsplit(a,3))
print(np.hsplit(a,(3,4))) #在第三列和第四列之后拆分a
a = np.floor(10np.random.random((12,2)))
print(a)
np.vsplit(a,3)
—[[ 2. 9. 0. 3. 9. 6. 6. 1. 5. 2. 8. 0.]
[ 3. 4. 5. 7. 7. 3. 7. 1. 3. 4. 7. 9.]]
[array([[ 2., 9., 0., 3.],
[ 3., 4., 5., 7.]]),
array([[ 9., 6., 6., 1.],
[ 7., 3., 7., 1.]]),
array([[ 5., 2., 8., 0.],
[ 3., 4., 7., 9.]])]
[array([[ 2., 9., 0.],
[ 3., 4., 5.]]),
array([[ 3.],
[ 7.]]),
array([[ 9., 6., 6., 1., 5., 2., 8., 0.],
[ 7., 3., 7., 1., 3., 4., 7., 9.]])]
[[ 7. 9.]
[ 0. 6.]
[ 2. 4.]
[ 5. 2.]
[ 7. 4.]
[ 1. 2.]
[ 9. 2.]
[ 5. 7.]
[ 5. 5.]
[ 5. 5.]
[ 1. 9.]
[ 5. 3.]]
[array([[ 7., 9.],
[ 0., 6.],
[ 2., 4.],
[ 5., 2.]]),
array([[ 7., 4.],
[ 1., 2.],
[ 9., 2.],
[ 5., 7.]]),
array([[ 5., 5.],
[ 5., 5.],
[ 1., 9.],
[ 5., 3.]])]
简单的赋值,a与b的地址是相同的,这个就是所谓的深复制
a = np.arange(12)
b = a
b is a #a和b是同一个ndarray对象的两个名称
b.shape = 3,4
print(a.shape)
print(id(a))
print(id(b))
—(3, 4)
117452112
117452112视图方法创建一个新的数组对象,该数组对象查看相同的数据(view是浅复制),浅复制不会复制a的地址到c,
改变c的值不会影响到a,改变c的值不会影响到a
c = a.view()
c is a
c.shape = 2,6
print(a.shape)
c[0,4] = 1234
print(a)
—(3, 4)
[[ 0 1 2 3]
[1234 5 6 7]
[ 8 9 10 11]]copy也是属于浅拷贝
d = a.copy()
d is a
d[0,0] = 9999
print(d)
print(a)
—[[9999 1 2 3]
[1234 5 6 7]
[ 8 9 10 11]]
[[ 0 1 2 3]
[1234 5 6 7]
[ 8 9 10 11]]argmax 索引最大值的位置,data.argmax(axis=0) axis=0意思是指定列去索引 找出最大值返回索引值的位置
import numpy as np
data = np.sin(np.arange(20)).reshape(5,4)
print(data)
ind = data.argmax(axis=0)
print(ind)
data_max = data[ind, range(data.shape[1])]
print(data_max)
—[[ 0. 0.84147098 0.90929743 0.14112001]
[-0.7568025 -0.95892427 -0.2794155 0.6569866 ]
[ 0.98935825 0.41211849 -0.54402111 -0.99999021]
[-0.53657292 0.42016704 0.99060736 0.65028784]
[-0.28790332 -0.96139749 -0.75098725 0.14987721]]
[2 0 3 1]
[ 0.98935825 0.84147098 0.99060736 0.6569866 ]tile 对当前的行和列进行扩展(矩阵由原来的一维扩展到了三行五列)
a = np.arange(0, 40, 10)
b = np.tile(a, (3, 5))
print(b)
—[[ 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30]
[ 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30]
[ 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30]]tile扩展
a = np.arange(0, 40, 10)
print(a)
b = np.tile(a, (1, 4))
print(b)
—[ 0 10 20 30]
[[ 0 10 20 30 0 10 20 30 0 10 20 30 0 10 20 30]]sort 对当前的数组按照行的维度进行排序(因为axis=1),argsort 是对值的索引进行排序 默认是值从小到大 然后按照值排序获取索引,输出索引
a = np.array([[4, 3, 5], [1, 2, 1]])
print(a)
b = np.sort(a, axis=1)
print(b)
a.sort(axis=1)
print(a)
a = np.array([4, 3, 1, 2])
j = np.argsort(a)
print(j)
print(a[j])
—[[4 3 5]
[1 2 1]]
[[3 4 5]
[1 1 2]]
[[3 4 5]
[1 1 2]]
[2 3 1 0] #按索引序号排列,输出索引
[1 2 3 4] #输出索引对应的数据
day4--numpy相关推荐
- python三维数组切片_【NumPy学习指南】day4 多维数组的切片和索引
ndarray支持在多维数组上的切片操作.为了方便起见,我们可以用一个省略号(...)来 表示遍历剩下的维度. (1)举例来说,我们先用arange函数创建一个数组并改变其维度,使之变成一个三维数组: ...
- python 数据分析day4 Pandas 之 DataFrame
DataFrame 一. 创建DataFrame 1. 二维数组创建 2. 字典创建 3. JSON创建 4. 读取Excel或CSV文件创建 5. 读数据库(MySQL)创建 二. 常用属性 三. ...
- Day4 Hailstone
Day4 Hailstone 希尔顿序列(Hailstone Sequence) Collatz 猜想 强悍的27 算法目录 希尔顿序列(Hailstone Sequence) 希尔顿序列(Hails ...
- OpenCV 笔记(07)— Mat 对象输出格式设置(Python 格式、CSV 格式、NumPy 格式、C 语言格式)
首先是下面代码中将要使用的 r 矩阵的定义.需要注意,我们可以通过用 randu 函数产生的随机值来填充矩阵, 需要给定一个上限和下限来确保随机值在期望的范围内. Mat r = Mat(2, 3, ...
- NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存
NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...
- Python+OpenCV 图像处理系列(8)—— Numpy 对象及图像对象创建与赋值
1. Numpy 相关知识 1.1 Ndarray 对象 在了解 OpenCV 的图像对象之前我们先对 NumPy 的基础知识做一回顾,方便我们后续更进一步理解图像对象的一系列操作. In [2]: ...
- dataframe,python,numpy 问题索引2
20220330 print(frame3.isnull().any()) 找出存在空值的列 print("========================") print(fra ...
- dataframe,python,numpy 问题索引1
# 找出只有赌场数据的账户 gp=data.groupby(['查询账号','场景标签'],as_index=True) tj=gp.size().reset_index()按查询账号和场景标签分组并 ...
- 数组的拼接合并 numpy
Python中numpy数组的合并有很多方法,如 np.append() np.concatenate() np.stack() np.hstack() np.vstack() np.dstack() ...
- view(*args)改变张量的大小和形状_pytorch reshape numpy
20201227 这个方法是在不改变数据内容的情况下,改变一个数组的格式,参数及返回值,官网介绍: a:数组–需要处理的数据 newshape:新的格式–整数或整数数组,如(2,3)表示2行3列,新的 ...
最新文章
- [architecture]-AMBA AXI AHB APB学习总结
- ORB-SLAM2中四叉树管理特征点
- 告别 ROR windows 部署的噩梦-在 windows 上面 使用 Apache 部署 Ruby On Rails
- asp 取数据 计算_ASP.NET Core 简介
- 计算机网络-VRRP
- Mysql设置允许外网访问(图文)
- GNU C的定义长度为0的数组
- 《TCP/IP详解卷1》学习小结(一)------链接层
- 跳表 skipList
- iec61508最新2020_功能安全IEC61508标准新旧版的对比.pdf
- office2016 excel复制粘贴就卡死
- 安卓手机怎样安装apk应用
- 破解华为电脑管家,多屏协同无法正常启动,提示 硬件解码器工作异常,请重启电脑
- 基于朴素贝叶斯的垃圾邮件分类Python实现
- 一类能产生无限种可能的随机算法--无限随机算法
- 阿里巴巴二重身ABBC Coin虚涨逾100%
- Win7 SMTP 服务器代替工具
- php不是当前时间,php取得时间与当前时间不一样
- [存储]NVMe-4-数据结构
- Oracle 查询工具 在WIN7 64位下安装PLSQL
热门文章
- java的JVM与垃圾回收机制
- micropython入门指南pdf_一文了解MicroPython
- linux 完成量源码,Linux内核中等待队列 和完成量
- html mysql查询_mysql查询
- python字符串的内建函数_python的字符串内建函数
- mkdir 创建多级目录_Linux mkdir命令:创建目录(文件夹)
- h5手机端浏览器机制_h5浏览器缓存机制
- Javascript:结合canvas、a标签根据url下载图片到本地
- 一位大牛架构师的经验总结
- 基于图像的相机定位/SLAM分类