array用法 numpy_关于Numpy Array的使用技巧整理
关于Numpy Array的使用技巧整理
1. 数组的扩展:repeat & tile
repeat方法:实现按元素复制扩展
输入:(需要扩展的array),repeats向量,轴向axis(用于多维array情形)
输出:扩展后的array,需要赋值才能保存,并不修改原array本身
关于repeats向量的使用 :
若长度为1,则每个元素复制repeats次
若长度为array.shape[axis],则array[i]复制repeats[i]次
若长度与array.shape[axis]不等则报错
>>>import numpy as np
>>>a = np.arange(5)
>>>a
array([0, 1, 2, 3, 4])
>>>a.repeat(2)
array([0, 0, 1, 1, 2, 2, 3, 3, 4, 4])
>>>np.repeat(a,2)
array([0, 0, 1, 1, 2, 2, 3, 3, 4, 4])
>>>a.repeat(range(5))
array([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
>>>a.repeat(range(4))
Traceback (most recent call last):
File "", line 1, in
a.repeat(range(4))
ValueError: operands could not be broadcast together with shape (5,) (4,)
对于多维array的情况
如果不指定axis,则系统自动将array转换成一维数组,然后根据repeats进行复制
如果指定了axis,则在对应维度下,将下一维度当做一个元素根据repeats进行复制
应当保证repeats维度为1,并且len(repeats)==array.shape[axis]
>>>b = np.arange(5) + np.arange(5).reshape(5,1)
>>>b
array([[0, 1, 2, 3, 4],
[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8]])
>>>b.repeat(2)
array([0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 2, 2, 3,
3, 4, 4, 5, 5, 6, 6, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 4, 4, 5, 5, 6, 6,
7, 7, 8, 8])
>>>b.repeat(2,axis=1)
array([[0, 0, 1, 1, 2, 2, 3, 3, 4, 4],
[1, 1, 2, 2, 3, 3, 4, 4, 5, 5],
[2, 2, 3, 3, 4, 4, 5, 5, 6, 6],
[3, 3, 4, 4, 5, 5, 6, 6, 7, 7],
[4, 4, 5, 5, 6, 6, 7, 7, 8, 8]])
>>>b.repeat(2,axis=0)
array([[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7],
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8],
[4, 5, 6, 7, 8]])
>>>b.repeat(range(5),axis=0)
array([[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7],
[3, 4, 5, 6, 7],
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8],
[4, 5, 6, 7, 8],
[4, 5, 6, 7, 8],
[4, 5, 6, 7, 8]])
tile方法(注意:此方法与repeat不同,只能用np.tile()方式调用)
输入:数组array,复制方式数组reps
输出:对整个数组进行复制操作后的结果数组
依旧需要赋值,否则不会保存
关于reps的详细说明(array为多维情形):
当reps维度小于array的维度时,默认从低到高的顺序对数组进行复制
相当于在reps左面补上1,将维度补齐
维度补齐以后,对应维度下,以数组为一个单位,进行扩展,具体见下面例子
>>>c=b.reshape(1,5,5)
>>>c
array([[[0, 1, 2, 3, 4],
[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8]]])
>>>c.shape
(1L, 5L, 5L)
>>>np.tile(c,2)
array([[[0, 1, 2, 3, 4, 0, 1, 2, 3, 4],
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5],
[2, 3, 4, 5, 6, 2, 3, 4, 5, 6],
[3, 4, 5, 6, 7, 3, 4, 5, 6, 7],
[4, 5, 6, 7, 8, 4, 5, 6, 7, 8]]])
>>>np.tile(c,(1,1,2))
array([[[0, 1, 2, 3, 4, 0, 1, 2, 3, 4],
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5],
[2, 3, 4, 5, 6, 2, 3, 4, 5, 6],
[3, 4, 5, 6, 7, 3, 4, 5, 6, 7],
[4, 5, 6, 7, 8, 4, 5, 6, 7, 8]]])
>>>np.tile(c,(1,2))
array([[[0, 1, 2, 3, 4, 0, 1, 2, 3, 4],
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5],
[2, 3, 4, 5, 6, 2, 3, 4, 5, 6],
[3, 4, 5, 6, 7, 3, 4, 5, 6, 7],
[4, 5, 6, 7, 8, 4, 5, 6, 7, 8]]])
>>>np.tile(c,(1,2,1))
array([[[0, 1, 2, 3, 4],
[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8],
[0, 1, 2, 3, 4],
[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8]]])
>>>np.tile(c,(2,1,1))
array([[[0, 1, 2, 3, 4],
[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8]],
[[0, 1, 2, 3, 4],
[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8]]])
未完待续
array用法 numpy_关于Numpy Array的使用技巧整理相关推荐
- 用数组循环实现矩阵乘法php,array用法 numpy_从创建数组到矩阵运算,一文带你看懂Numpy...
导读:Numpy(Numerical Python的简称)是高性能科学计算和数据分析的基础包,其提供了矩阵运算的功能.本文带你了解Numpy的一些核心知识点. 作者:魏溪含 涂铭 张修鹏 如需转载请联 ...
- Python之二维数组(list与numpy.array)
1.python中的二维数组,主要有list和numpy.array两种 >>import numpy as np>>a=[[1,2,3],[4,5,6],[7,8,9]] ...
- numpy.array知识大全
numpy.array知识大全 numpy.array()的作用 numpy.array()知识点总结 numpy 的数据调用 numpy.array()的数据类型 numpy.array()的计算 ...
- 笔记:numpy array中冒号的用法
在未引包的情况下,python中的冒号的用法比较简单,诸如a[10:20], 或者a[::10] 而在引入numpy后,冒号的用法得到了扩充,可以用引号来表示一整个维度,从开始到结束的所有元素,例如: ...
- Pandas_关于dataFrame.mean()方法的用法与numpy.array()的使用问题
文章目录 如果dataFrame是用numpy.array()得到的对象(ndarray)来初始化,那么可能使得dataFrame.mean()方法无法正常工作: the error result b ...
- python中array的用法_Python中的numpy.array()用法
齐次多维数组是NumPy的主要对象.它基本上是一个元素表, 这些元素都是相同类型的, 并由一个正整数元组索引.尺寸在NumPy中称为轴. NumPy的数组类称为ndarray或别名数组. numpy. ...
- array用法 numpy_NumPy总结(基础用法)
numpy可以说是Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas,sklearn等一些Python机器学习和科学计算库,因此在此总结一下常用的用法.引入 ...
- python numpy.array 与list类似,不同点:前者区分元素不用逗号,中间用空格,矩阵用[]代表行向量,两个行向量中间仍无逗号; 而list区分元素用逗号
python numpy.array 与list类似,不同点:前者区分元素不用逗号,中间用空格,矩阵用[]代表行向量,两个行向量中间仍无逗号: 而list区分元素用逗号.而 numpy.array 的 ...
- array用法 numpy_Numpy统计计算、数组比较,看这篇就够了
导读:工欲善其事,必先利其器.此前,我们在<玩数据必备Python库:Numpy使用详解>一文中介绍了利用Numpy进行矩阵运算的方法,本文继续介绍Numpy的统计计算及其他科学运算的方法 ...
最新文章
- 数据归一化 - MinMaxScaler()/MaxAbsScaler() - Python代码
- c#中对Cross-thread operation not valid错误的处理办法
- 【转载】windows mobile 上隐藏和关闭X以及OK的处理
- 页面与页面之间传递参数
- python求斜边上的高_直角三角形斜边上的高怎么求
- java实现遍历树形菜单方法——OpenSessionView实现
- Mysql 数据库导入导出
- 引用activity_允许其他应用启动您的 Activity
- volte 是什么意思
- 50 年的软件开发经验带给我的 63 个启示
- EndNote X8使用总结
- notepad++ 免安装版,下载,汉化
- 炒股魅力:数据分析侠变身“赚钱机器”
- eclipse启动失败,提示“发生了错误,请参阅日志文件.log
- Access 一些内部函数(Access 帮助里) .
- 如何把 Excel 数据按分类拆分为多个
- python-列表处理log日志、字典处理log日志学习总结
- 两种方法 Find inorder succ of BST
- 如何使用身份证实名认证API接口?
- 你知道网站是什么吗? 还有什么是网页?
热门文章
- 随机森林RandomForest回归生物标记预测时间序列
- 生信小白7行代码画一个高颜值的世界地图
- QIIME 2教程. 22命令行界面q2cli(2020.11)
- Python使用matplotlib可视化树状图、层次聚类系统树图、树状图根据给定的距离度量将相似点分组在一起、并根据点的相似性将它们组织成树状图链接起来(Dendrogram)
- R语言使用tryCatch函数调试R代码实战:tryCatch函数运行正常R代码、tryCatch函数运行有错误(error)的R代码示例/tryCatch函数运行有警告(warning)的R代码示例
- R语言嵌套方差分析(Nested ANOVA)实战
- Python使用SQLAlchemy连接数据库并创建数据表、插入数据、删除数据、更新表、查询表(CRUD)
- 机器学习调参与贝叶斯优化及其典型python实现hyperopt
- 基因疾病关联的图卷积神经网络
- Nature news: 未来40年,DNA测序将走向何方?