Python append与expand 区别

本文介绍了Python中列表的append()与extend()方法的区别,并详细解释了from module import与import的不同之处。此外还讨论了Python中下划线的使用场景。
部署运行你感兴趣的模型镜像

append()  与expand()区别:

分别尝试以下方法,结果如下:

mylist=[1,2,[3,4]]       >>>[1,2,[3,4]]

mylist.append(5)    >>>[1, 2, [3, 4], 5]

mylist.append([5])   >>>[1, 2, [3, 4], [5]]

mylist.append([5,6])   >>>[1, 2, [3, 4], [5, 6]]

 mylist.extend([5,6])     >>>[1, 2, [3,  4], 5, 6]

mylist.extend([5])    >>> mylist.expand(1, 2, [3,  4], 5)
mylist.extend(5)   >>>TypeError: 'int' object is not iterable

可总结:

list.append(arg1) 可以是任意参数,作用是往已有列表中添加元素,如果添加的是列表,就被当成一个元素存在原列表中,只使list长度增加1.

list.extend(list1)  参数必须是列表类型,左右时将参数中的列表合并到原列表的末尾,使 list长度增加len(list1)。



2.  from module import 与import 区别

from module import function 后 ,function() 直接可用

import function 后,,要通过module.function()  调用。

参考  http://www.cnblogs.com/qi09/archive/2012/02/09/2344148.html



参考

3. 下划线

_XXX (单下划线)   模块中的私有属性,在该类之外甚至子类中不可直接使用或import 导入

__XXX (双下划线) 类的私有成员

__XXX__  (前后双下划线 )python特殊的方法表示,相当于保留方法名, 如 __name__, __doc__ ,__init__, __repr__

参考 http://blog.163.com/jackylau_v/blog/static/175754040201182113817834/

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think> 我们正在处理用户的问题:"How to expand an array in Python" 根据用户指令,我们需要参考站内引用,但用户提供的引用中,引用[1]提到了使用numpy的expand_dims来增加维度,引用[2]展示了如何加载和显示图像数据,引用[3]是一个绘图示例,引用[4]是关于BERT模型训练的。 用户的问题是关于在Python中扩展数组,因此引用[1]中的内容最相关,其中提到了np.expand_dims()。 另外,用户要求使用中文回答,并且按照系统级指令处理数学公式和独立公式。 我们需要生成相关问题,并按照示例格式组织回答。 因此,回答将包括: 1. 解释在Python中扩展数组的常见方法,特别是NumPy数组(因为用户问题中提到了数组,而NumPy是处理数组的核心库)。 2. 引用[1]中提到了使用np.expand_dims()增加维度,我们可以演示这个函数。 3. 也可以提到其他扩展数组的方法,比如reshape,resize,或者使用np.newaxis等。 4. 由于用户问题没有指定具体的扩展方式(增加维度、改变形状、连接数组等),我们应涵盖常见的扩展场景。 注意:用户可能使用的是普通的Python列表,但通常“数组”在Python中指的是NumPy数组,所以我们将重点放在NumPy上。 根据引用[1]中的示例: c = np.expand_dims(b, axis=2) # 在axis=2的位置增加一个维度 我们还可以提到: - 使用reshape方法改变数组形状,但要注意元素数量不变。 - 使用np.resize或ndarray.resize改变数组大小(可能改变元素数量)。 - 使用np.append, np.concatenate, np.stack等来连接多个数组。 具体步骤: 1. 解释扩展数组的常见需求(增加维度、改变形状、连接数组等)。 2. 分别介绍不同的方法,并给出代码示例。 注意:用户要求所有行内数学表达式用$...$,独立公式用$$...$$,但这个问题可能涉及较少数学公式。不过,在解释数组形状时,我们可以用数学表示。 例如,一个形状为$(m, n)$的数组,扩展维度后变为$(m, n, 1)$。 生成的问题: 1. 如何改变NumPy数组的形状? 2. 如何在NumPy中连接两个数组? 3. 扩展维度在深度学习中的应用? 回答结构: - 首先介绍几种常见的扩展数组的方式。 - 然后给出代码示例。 - 最后生成相关问题。 注意:用户提供的引用中,引用[1]是关于NumPy数组操作的,所以我们主要参考它。 </think> 在Python中扩展数组(特别是NumPy数组)的常见方法如下,重点参考了引用[1]中`np.expand_dims`的操作: ### 1. 增加维度(扩展轴) 使用`np.expand_dims`在指定轴添加长度为1的新维度,适用于深度学习数据格式转换: ```python import numpy as np arr = np.array([[1, 2], [3, 4]]) # 形状 (2, 2) expanded = np.expand_dims(arr, axis=0) # 轴0添加维度 → 形状 (1, 2, 2) print(expanded.shape) # 输出 (1, 2, 2) ``` 等效快捷方式: ```python expanded = arr[np.newaxis, :] # 效果同 axis=0 ``` ### 2. 调整形状(不改变数据) `reshape`方法改变数组维度而不改变元素总量: ```python arr = np.arange(6) # [0 1 2 3 4 5] reshaped = arr.reshape(2, 3) # 形状 (2, 3) ``` ### 3. 数组拼接 水平/垂直拼接扩展数据: ```python a = np.array([1, 2]) b = np.array([3, 4]) # 垂直扩展 (沿轴0) v_stack = np.vstack([a, b]) # [[1,2], [3,4]] # 水平扩展 (沿轴1) h_stack = np.hstack([a, b]) # [1,2,3,4] ``` ### 4. 填充扩展 使用`np.pad`在边缘填充值: ```python arr = np.array([[1, 2], [3, 4]]) padded = np.pad(arr, pad_width=1, mode='constant', constant_values=0) # 输出: # [[0 0 0 0] # [0 1 2 0] # [0 3 4 0] # [0 0 0 0]] ``` ### 应用场景 - 深度学习:调整输入数据维度匹配模型要求(如CNN需$(N,C,H,W)$格式) - 数据预处理:统一不同尺寸的数组 - 矩阵运算:满足广播机制要求
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值