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列,新的 ...
最新文章
- thymleaf用法例子
- python爬虫,生成文件速度追不上已经爬取文件的生成速度。
- 区块链将重新定义世界
- java 小坑_关于Java子父类关系的小坑
- 迁移学习 简而言之_简而言之Java.io:22个案例研究
- ZZULIOJ 1097: 计算平均成绩(函数专题)
- 从“三只小猪”的故事到“高性能”测试自动化
- 在Vue项目中引入echarts图表的方法(引入cdn)
- Git(6):使用git命令将本地项目提交至远程仓库
- 如何用C++制作游戏开发概述
- PHP 中移除微信emoji表情
- 阅读札记:创新与思维范式
- 音频系统POP音的原理和解决方法
- kali下如何生成密码字典(在线)
- 自己制作一个html网页链接,怎么制作自己的网页链接,学生个人网页制作方法...
- 检索的原理和方法步骤
- (七)CMake变量及其设置
- IBM PVM Study之--IBM PVM技术概述
- 为什么团建这么招人恨
- 胡昌泽day5_循环语句
热门文章
- ppt上的倒计时小工具_英孚线上精品小班课平台操作指南这些课堂小工具你都知道吗?更多课前指引看这里!...
- (day 42 - 字符翻转 ) 剑指 Offer 58 - II. 左旋转字符串
- php diff 文本比较,php文本操作方法集合比较
- flink globalwindow_《从0到1学习Flink》—— 介绍Flink中的Stream Windows
- python牛顿法与拟牛顿法_python实现牛顿法求解求解最小值(包括拟牛顿法)【最优化课程笔记】...
- codesys编程_明晚20:00,CODESYS教您制作可编程控制器
- mysql 周 获取日期_MySQL获取日期周、月、天,生成序号
- 点云投影_激光点云变换到图像平面并保存成int16灰度图一帧激光点云+一张RGB图像得到彩色点云
- 线性表_循环链表(增减删查 + 约瑟夫环问题 代码实现 )
- pcl对点云进行直通滤波