pythonappend的意思_Python中Numpy.append的用法解析

之前只见过列表list的append方法,昨天写代码的时候,看到了numpy库的append方法,记录一下。

简单的说,该方法功能就是将一个数组附加到另一个数组的尾部。

目录

官方帮助文档

参数

返回值

示例

axis无定义

axis=0的情况

axis=1的情况

axis=0和axis=1的图示

先看一个官方的帮助文档,嫌麻烦的可以直接看示例。看完示例再反过头看文档,其实理解的更好。

官方帮助文档

append(arr, values, axis=None)

Append values to the end of an array.  将值附加到数组的末尾。

参数

arr : array_like

Values are appended to a copy of this array.  值将附加到此数组的副本。

values : array_like

These values are appended to a copy of  "arr".  It must be of the correct shape (the same shape as "arr", excluding "axis").  If "axis" is not specified, "values" can be any shape and will be flattened before use.

这些值附加到"arr"的副本上。 它必须是正确的形状(与"arr"形状相同,不包括"轴")。 如果未指定"axis",则"values"可以是任何形状,并在使用前展平。

“与"arr"形状相同,不包括"轴"”,这句话的意思是说,一个数组两维,如果axis=0,则axis=1这一维形状要相同。如果设置了axis=1,则axis=0这一维要相同,具体可以看后面的例子。

axis : int, optional

The axis along which "values" are appended.  If `axis` is not given, both `arr` and `values` are flattened before use.

附加“值”的轴。 如果没有给出`axis`,'arr`和`values`在使用前都会展平。

返回值

append : ndarray

A copy of "arr" with "values” appended to `axis`.  Note that `append` does not occur in-place: a new array is allocated and filled.  If `axis` is None, `out` is a flattened array.

带有"values"的"arr"的副本附加到"axis"。注意,"append"并不是就地发生的:一个新的数组被分配和填充。如果"axis"为空,则"out"是一个扁平数组。

示例

axis无定义

numpy.append(arr,values,axis=None):

返回由arr和values组成的新数组。axis是一个可选的值,当axis无定义时,返回总是为一维数组。

由下面的例子可以看出,不管两个数组是什么形式,返回的都是一维数组。

import numpy as np

HJL = np.append([1,2,3],[[4,5,6],[7,8,9]])

print(HJL)

# 当axis无定义时,是横向加成,返回总是为一维数组。

#[1 2 3 4 5 6 7 8 9]

HXH = np.append([[1,2],[3,4]],[[5,6,7],[8,9,10]])

print(HXH)

# [ 1  2  3  4  5  6  7  8  9 10]

axis=0的情况

axis=0,表示针对第1维进行操作,可以简单的理解为,加在了行上。所以行数增加,列数不变。

由此可知,列数必须保持相同。

【axis=0到底称作第0维还是第1维,我看各种说法都有,知道我在说什么就好】

import numpy as np

DYX = np.zeros((1,8))

HXH = np.ones((3,8))

XH = np.append(DYX, HXH,axis=0)

#先展示原来的数组

print(DYX) #(1, 8)

#[[0. 0. 0. 0. 0. 0. 0. 0.]]

print(HXH) # (3,8)

"""

[[1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1.]]

"""

#组合后的结果

print(XH)

"""

[[0. 0. 0. 0. 0. 0. 0. 0.]

[1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1.]]

"""

#axis = 0,在第一维上拼接,所以说,(1,8)和(3,8)就变成了(4,8)

axis=1的情况

拓展列,行数不变。行数需要相同。

import numpy as np

DYX = np.zeros((3,1))

HXH = np.ones((3,8))

XH = np.append(DYX, HXH,axis=1)

print(DYX) #(3,1)

"""

[[0.]

[0.]

[0.]]

"""

print(HXH) # (3,8)

"""

[[1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1.]

[1. 1. 1. 1. 1. 1. 1. 1.]]

"""

#最终结果:

print(XH)

"""

[[0. 1. 1. 1. 1. 1. 1. 1. 1.]

[0. 1. 1. 1. 1. 1. 1. 1. 1.]

[0. 1. 1. 1. 1. 1. 1. 1. 1.]]

"""

print(XH.shape)  #(3, 9)

#axis = 1,在第二维上拼接,所以说,(3,1)和(3,8)就变成了(3,9)

axis=0和axis=1的图示

axis=0或1时的多维数组我没测试。因为还没用到,用到再说吧。

本篇完,如果错误,还望指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值