[Python Cookbook] Numpy Array Joint Methods: Append, Extend & Concatenate

数组拼接方法一

思路:首先将数组转成列表,然后利用列表的拼接函数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()效率更高,适合大规模的数据拼接

作者:故乡月zyl

来源:CSDN

原文:https://blog.csdn.net/zyl1042635242/article/details/43162031

版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/sherrydatascience/p/10204378.html

时间: 12-31

[Python Cookbook] Numpy Array Joint Methods: Append, Extend & Concatenate的相关文章

python numpy array 的一些问题

1 将list转换成array 如果list的嵌套数组是不规整的,如 a = [[1,2], [3,4,5]] 则a = numpy.array(a)之后 a的type是ndarray,但是a中得元素a[i]都还是list 如果a = [[1,2], [3,4]] 则a = numpy.array(a)之后 a的type是ndarray,里面的元素a[i]也是ndarray 2 flatten函数 Python自身不带有flatten函数,numpy中array有flatten函数. 同1的一样

python之模块array

>>> import array#定义了一种序列数据结构 >>> help(array) #创建数组,相当于初始化一个数组,如:d={},k=[]等等 array(typecode [, initializer]) -- create a new array #a=array.array('c'),决定着下面操作的是字符,并是单个字符 #a=array.array('i'),决定着下面操作的是整数 | Attributes: | | typecode -- the ty

Python 之NumPy

NumPy的主要对象是同质的多维数组.它是一个有明确索引的相同类型的元素组成的表.在NumPy中维度称之为轴,轴数称之为列. 举个例子: 例一: [ 1, 2, 1 ] 这是一个一维数组,因为它只有一个轴,这个轴的长度是3. 列二: [[ 1., 0., 0.],[ 0., 1., 2.]] 这是一个二维数组,第一个维度的长度是2,第二个维度的长度是3. NumPy中的array类被称之为ndarray,但是他的别名array更有名.特别需要注意的是NumPy.array和Python 标准库里

Windows系统下Python与NumPy安装方法

Windows系统下Python与NumPy安装方法 Windows下Python的某些第三方包安装步骤实在是太麻烦了(这里主要以NumPy为例,目前只有遇到安装它的时候出现了很多问题),晚上花了好几个小时才把NumPy科学计算包安装好,在这里描述下安装过程,避免大家走没有必要的弯路. 1,安装Python 首先,运行下载的MSI安装包,选择安装组件时,确保勾上了所有的组件. 特别要注意选上pip和Add python.exe to Path,然后多次点击Next即可完成安装. Python解释

windows下python配置numpy、matplotlib、scipy

这两天对Python进行了研究,并且配置了numpy.matplotlib以及scipy.现对基本概念以及配置步骤介绍: 基本概念: Python (英语发音:/?pa?θ?n/), 是一种面向对象.解释型计算机程序设计语言.专用的科学计算扩展库很多,例如如下3个十分经典的科学计算扩展库:NumPy.SciPy和matplotlib,它们分别为Python提供了快速数组处理.数值运算以及绘图功能. <python科学计算>这本书中对Python介绍得很是详细,推荐下.电子版下载链接http:/

《Python cookbook》 “定义一个属性可由用户修改的装饰器” 笔记

看<Python cookbook>的时候,第9.5部分,"定义一个属性可由用户修改的装饰器",有个装饰器理解起来花了一些时间,做个笔记免得二刷这本书的时候忘了 完整代码:https://github.com/blackmatrix7/python-learning/blob/master/python_cookbook/chapter_9/section_5/attach_wrapper.py 书中的装饰器(书中称之为访问器函数) def attach_wrapper(o

python和numpy的版本、安装位置

命令行下查看python和numpy的版本和安装位置 1.查看python版本 方法一: python -V 注意:‘-V‘中‘V’为大写字母,只有一个‘-’ 方法二: python --version 注意:‘--version'中有两个‘-’ 2.查看python安装位置 方法一: python -c "import sys; print sys.executable" 方法二: python -c "import os; print os.sys.executable&

python数据分析Numpy(二)

Numpy (Numerical Python) 高性能科学计算和数据分析的基础包: ndarray,多维数组(矩阵),具有矢量运算能力,快速.节省空间: 矩阵运算,无需循环,可以完成类似Matlab中的矢量运算: 线性代数.随机送生成: ndarray ,N维数组对象(矩阵) 所有元素必须是相同类型 ndim属性,维度个数 shape属性,各维度大小 dtype属性,数据类型 代码示例: import numpy # 生成指定维度的随机多维数据(两行三列) data = numpy.rando

Python学习-Numpy数据处理

引文 标准的python中用list保存数值,可以当数组使用.但由于列表的元素是任意对象,因此列表中保存的是对象的指针.对于数值运算来说,这种结构显然会浪费内存和CPU计算时间. 此外,python还提供了array模块,但由于其不支持多维数组,因此也不适合数值计算. So,Numpy正好弥补了这些不足,Numpy提供了两个基本的对象:ndarray和ufunc.ndarray是存储单一数据类型的多维数组,而ufunc是能够对数组进行处理的函数. 导入方法 import numpy as np

Python中numpy的where()函数

第一种用法 np.where(conditions,x,y) if (condituons成立): 数组变x else: 数组变y import numpy as np ''' x = np.random.randn(4,4) print(np.where(x>0,2,-2)) #试试效果 xarr = np.array([1.1,1.2,1.3,1.4,1.5]) yarr = np.array([2.1,2.2,2.3,2.4,2.5]) zarr = np.array([True,Fals