这篇文章主要介绍了numpy数组拼接简单示例,涉及对numpy数组的介绍,numpy数组的属性等内容,具有一定借鉴价值,需要的朋友可以参考下。

NumPy数组是一个多维数组对象,称为ndarray。其由两部分组成:

·实际的数据

·描述这些数据的元数据

大部分操作仅针对于元数据,而不改变底层实际的数据。

关于NumPy数组有几点必需了解的:

·NumPy数组的下标从0开始。

·同一个NumPy数组中所有元素的类型必须是相同的。

NumPy数组属性

在详细介绍NumPy数组之前。先详细介绍下NumPy数组的基本属性。NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推。在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量。比如说,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组。所以一维数组就是NumPy中的轴(axes),第一个轴相当于是底层数组,第二个轴是底层数组里的数组。而轴的数量——秩,就是数组的维数。

NumPy的数组中比较重要ndarray对象属性有:

1.ndarray.ndim:数组的维数(即数组轴的个数),等于秩。最常见的为二维数组(矩阵)。

2.ndarray.shape:数组的维度。为一个表示数组在每个维度上大小的整数元组。例如二维数组中,表示数组的“行数”和“列数”。ndarray.shape返回一个元组,这个元组的长度就是维度的数目,即ndim属性。

3.ndarray.size:数组元素的总个数,等于shape属性中元组元素的乘积。

4.ndarray.dtype:表示数组中元素类型的对象,可使用标准的Python类型创建或指定dtype。另外也可使用前一篇文章中介绍的NumPy提供的数据类型。

5.ndarray.itemsize:数组中每个元素的字节大小。例如,一个元素类型为float64的数组itemsiz属性值为8(float64占用64个bits,每个字节长度为8,所以64/8,占用8个字节),又如,一个元素类型为complex32的数组item属性为4(32/8)。

6.ndarray.data:包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。

数组拼接方法一

思路:首先将数组转成列表,然后利用列表的拼接函数append()、extend()等进行拼接处理,最后将列表转成数组。

示例1:

>>> import numpy as np

>>> a=np.array([1,2,5])

>>> b=np.array([10,12,15])

>>> a_list=list(a)

>>> b_list=list(b)

>>> a_list.extend(b_list)

>>> a_list

[1, 2, 5, 10, 12, 15]

>>> a=np.array(a_list)

>>> a

array([ 1, 2, 5, 10, 12, 15])

该方法只适用于简单的一维数组拼接,由于转换过程很耗时间,对于大量数据的拼接一般不建议使用。

数组拼接方法二

思路:numpy提供了numpy.append(arr,values,axis=None)函数。对于参数规定,要么一个数组和一个数值;要么两个数组,不能三个及以上数组直接append拼接。append函数返回的始终是一个一维数组。

示例2:

>>> a=np.arange(5)

>>> a

array([0, 1, 2, 3, 4])

>>> np.append(a,10)

array([ 0, 1, 2, 3, 4, 10])

>>> a

array([0, 1, 2, 3, 4])

>>> b=np.array([11,22,33])

>>> b

array([11, 22, 33])

>>> np.append(a,b)

array([ 0, 1, 2, 3, 4, 11, 22, 33])

>>> a

array([[1, 2, 3],

[4, 5, 6]])

>>> b=np.array([[7,8,9],[10,11,12]])

>>> b

array([[ 7, 8, 9],

[10, 11, 12]])

>>> np.append(a,b)

array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])

numpy的数组没有动态改变大小的功能,numpy.append()函数每次都会重新分配整个数组,并把原来的数组复制到新数组中。

数组拼接方法三

思路:numpy提供了numpy.concatenate((a1,a2,...),axis=0)函数。能够一次完成多个数组的拼接。其中a1,a2,...是数组类型的参数

示例3:

>>> a=np.array([1,2,3])

>>> b=np.array([11,22,33])

>>> c=np.array([44,55,66])

>>> np.concatenate((a,b,c),axis=0) # 默认情况下,axis=0可以不写

array([ 1, 2, 3, 11, 22, 33, 44, 55, 66]) #对于一维数组拼接,axis的值不影响最后的结果

>>> a=np.array([[1,2,3],[4,5,6]])

>>> b=np.array([[11,21,31],[7,8,9]])

>>> np.concatenate((a,b),axis=0)

array([[ 1, 2, 3],

[ 4, 5, 6],

[11, 21, 31],

[ 7, 8, 9]])

>>> np.concatenate((a,b),axis=1) #axis=1表示对应行的数组进行拼接

array([[ 1, 2, 3, 11, 21, 31],

[ 4, 5, 6, 7, 8, 9]])

对numpy.append()和numpy.concatenate()两个函数的运行时间进行比较

示例4:

>>> from time import clock as now

>>> a=np.arange(9999)

>>> b=np.arange(9999)

>>> time1=now()

>>> c=np.append(a,b)

>>> time2=now()

>>> print time2-time1

28.2316728446

>>> a=np.arange(9999)

>>> b=np.arange(9999)

>>> time1=now()

>>> c=np.concatenate((a,b),axis=0)

>>> time2=now()

>>> print time2-time1

20.3934997107

可知,concatenate()效率更高,适合大规模的数据拼接

总结

以上就是本文关于numpy数组拼接简单示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

相关推荐:

以上就是numpy数组拼接简单示例_python的详细内容,更多请关注php中文网其它相关文章!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

python矩阵拼接_numpy数组拼接简单示例_python相关推荐

  1. python 矩阵列拼接_numpy数组拼接简单示例

    NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成: ·实际的数据 ·描述这些数据的元数据 大部分操作仅针对于元数据,而不改变底层实际的数据. 关于NumPy数组有几点必需了解的: ...

  2. python矩阵的右下半部分【简单易懂,代码可以直接运行】

    python矩阵的右下半部分[简单易懂,代码可以直接运行] 输入一个二维数组 M[12][12],根据输入的要求,求出二维数组的右下半部分元素的平均值或元素的和. 右下半部分是指次对角线下方的部分,如 ...

  3. python抓取取微博评论简单示例

    python抓取取微博评论简单示例 使用python中的requests以及re库对人民日报的一篇新冠疫苗文章前30页评论进行抓取.抓取微博评论使用的是微博的移动端网页.具体代码如下 import r ...

  4. php 递归格式化数组,PHP利用递归实现无限分类,格式化数组的简单示例

    这篇文章主要为大家详细介绍了PHP利用递归实现无限分类,格式化数组的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!我们要做一个商品的无限分类 ...

  5. python numpy矩阵切片_Numpy数组的索引与切片和变形拼接分裂

    1.概述 今天我们来讲一下Numpy数组的索引与切片,numpy数组的索引与切片和Python中的切片与索引的作用相同,可以快速的取出数据,进行下一步的运用或者查看,但是两种切片还有一些不同的地方.另 ...

  6. python矩阵教程_numpy教程:矩阵matrix及其运算

    numpy矩阵简介 NumPy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都可以用于处理行列表示的数字元素.虽然它们看起来很相似,但是在这两个数据类型上执行相同的数学运算可能得 ...

  7. python处理excel-python处理Excel的简单示例

    这篇文章主要为大家详细介绍了python处理Excel的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! Pyt ...

  8. python读取二维数组的行列数_Python获取二维数组的行列数的2种方法

    Python获取二维数组的行列数的2种方法 这篇文章主要介绍了Python获取二维数组的行列数的2种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考 ...

  9. python入门第一课_入门第一课 Python入门涉及的问题及简单示例

    很多初学者都在问:我想自学Python,该怎样入门?入门选择哪些书籍? 下面,我以自己的理解作出解答. 1.先说明大体的学习进度. Python确实入门较为容易,语法清晰易懂.一旦入了门再想提高就和其 ...

最新文章

  1. 2012-2013年下学期计划
  2. h5滚动隐藏滚动条_这 10 个值得开启的隐藏功能,让你的 Chrome 释放更多潜力
  3. create用法java_Java AcousticEchoCanceler.create方法代碼示例
  4. 记录一则expdp任务异常处理案例
  5. 12GB内存版华为P30、P30 Pro工信部入网:售价或将突破7000元
  6. 央视被黑内幕,居然存在暴库及上传漏洞
  7. 站闻资讯项目开发个人总结
  8. orCAD导入AD库 连不上线 更改元件库 出现Unable To Save Part
  9. 服务器内存是用接近完毕
  10. OPNET开发教程合集
  11. Winxp不幸中毒以及手杀过程
  12. 小程序快递单号查询接口物流助手对接指南
  13. 【二】Centos 7.6下载与安装
  14. 集群通信TIPC协议
  15. 2018.10.19学习总结
  16. 以下哪些不是Linux操作系统特点,Linux系统都有哪些特点?很多人不知道!
  17. ice的意思_ice是什么意思_ice怎么读_ice翻译_用法_发音_词组_同反义词_冰-新东方在线英语词典...
  18. 【科普】ESP32 内部温度传感器示例
  19. 基于MATLAB的ASK,FSK,PSK误码率对比仿真,输出调制后波形以及误码率曲线
  20. 2017年11月11日 软件系统架构师考试经验分享

热门文章

  1. PING命令ping通ip地址 ping不通域名
  2. 微信原创文章写作平台有哪些
  3. Shift-JIS字符集判断
  4. B轮融资22亿元 巨头纷纷站台,何小鹏感慨:互联网利润真高! | 聚焦
  5. Linux下执行.sh命令出现-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory 问题解决
  6. 相机标定(二)-畸变校正,张正友标定法
  7. Android 10及更高开机应用自启动
  8. 京东在html5页面中打开本地app的解决方案
  9. C Primer Plus 第4章(字符串和格式化输入输出)
  10. Vue scss报错