关于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的使用技巧整理相关推荐

  1. 用数组循环实现矩阵乘法php,array用法 numpy_从创建数组到矩阵运算,一文带你看懂Numpy...

    导读:Numpy(Numerical Python的简称)是高性能科学计算和数据分析的基础包,其提供了矩阵运算的功能.本文带你了解Numpy的一些核心知识点. 作者:魏溪含 涂铭 张修鹏 如需转载请联 ...

  2. Python之二维数组(list与numpy.array)

    1.python中的二维数组,主要有list和numpy.array两种  >>import numpy as np>>a=[[1,2,3],[4,5,6],[7,8,9]] ...

  3. numpy.array知识大全

    numpy.array知识大全 numpy.array()的作用 numpy.array()知识点总结 numpy 的数据调用 numpy.array()的数据类型 numpy.array()的计算 ...

  4. 笔记:numpy array中冒号的用法

    在未引包的情况下,python中的冒号的用法比较简单,诸如a[10:20], 或者a[::10] 而在引入numpy后,冒号的用法得到了扩充,可以用引号来表示一整个维度,从开始到结束的所有元素,例如: ...

  5. Pandas_关于dataFrame.mean()方法的用法与numpy.array()的使用问题

    文章目录 如果dataFrame是用numpy.array()得到的对象(ndarray)来初始化,那么可能使得dataFrame.mean()方法无法正常工作: the error result b ...

  6. python中array的用法_Python中的numpy.array()用法

    齐次多维数组是NumPy的主要对象.它基本上是一个元素表, 这些元素都是相同类型的, 并由一个正整数元组索引.尺寸在NumPy中称为轴. NumPy的数组类称为ndarray或别名数组. numpy. ...

  7. array用法 numpy_NumPy总结(基础用法)

    numpy可以说是Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas,sklearn等一些Python机器学习和科学计算库,因此在此总结一下常用的用法.引入 ...

  8. python numpy.array 与list类似,不同点:前者区分元素不用逗号,中间用空格,矩阵用[]代表行向量,两个行向量中间仍无逗号;  而list区分元素用逗号

    python numpy.array 与list类似,不同点:前者区分元素不用逗号,中间用空格,矩阵用[]代表行向量,两个行向量中间仍无逗号: 而list区分元素用逗号.而 numpy.array 的 ...

  9. array用法 numpy_Numpy统计计算、数组比较,看这篇就够了

    导读:工欲善其事,必先利其器.此前,我们在<玩数据必备Python库:Numpy使用详解>一文中介绍了利用Numpy进行矩阵运算的方法,本文继续介绍Numpy的统计计算及其他科学运算的方法 ...

最新文章

  1. 数据归一化 - MinMaxScaler()/MaxAbsScaler() - Python代码
  2. c#中对Cross-thread operation not valid错误的处理办法
  3. 【转载】windows mobile 上隐藏和关闭X以及OK的处理
  4. 页面与页面之间传递参数
  5. python求斜边上的高_直角三角形斜边上的高怎么求
  6. java实现遍历树形菜单方法——OpenSessionView实现
  7. Mysql 数据库导入导出
  8. 引用activity_允许其他应用启动您的 Activity
  9. volte 是什么意思
  10. 50 年的软件开发经验带给我的 63 个启示
  11. EndNote X8使用总结
  12. notepad++ 免安装版,下载,汉化
  13. 炒股魅力:数据分析侠变身“赚钱机器”
  14. eclipse启动失败,提示“发生了错误,请参阅日志文件.log
  15. Access 一些内部函数(Access 帮助里) .
  16. 如何把 Excel 数据按分类拆分为多个
  17. python-列表处理log日志、字典处理log日志学习总结
  18. 两种方法 Find inorder succ of BST
  19. 如何使用身份证实名认证API接口?
  20. 你知道网站是什么吗? 还有什么是网页?

热门文章

  1. 随机森林RandomForest回归生物标记预测时间序列
  2. 生信小白7行代码画一个高颜值的世界地图
  3. QIIME 2教程. 22命令行界面q2cli(2020.11)
  4. Python使用matplotlib可视化树状图、层次聚类系统树图、树状图根据给定的距离度量将相似点分组在一起、并根据点的相似性将它们组织成树状图链接起来(Dendrogram)
  5. R语言使用tryCatch函数调试R代码实战:tryCatch函数运行正常R代码、tryCatch函数运行有错误(error)的R代码示例/tryCatch函数运行有警告(warning)的R代码示例
  6. R语言嵌套方差分析(Nested ANOVA)实战
  7. Python使用SQLAlchemy连接数据库并创建数据表、插入数据、删除数据、更新表、查询表(CRUD)
  8. 机器学习调参与贝叶斯优化及其典型python实现hyperopt
  9. 基因疾病关联的图卷积神经网络
  10. Nature news: 未来40年,DNA测序将走向何方?