精华内容
下载资源
问答
  • 最近遇到numpy.zero()这个函数时有几个疑惑地方: 1、想生成5×2阶零矩阵时为什么不是zeros(5,2),而是多了个括号zeros((5,2))? 2、查到帮助文档示例zeros((5,))=array([ 0., 0., 0., 0., 0.]),表示...

    最近遇到numpy.zero()这个函数时有几个疑惑的地方:

    1、想生成5×2阶的零矩阵时为什么不是zeros(5,2),而是多了个括号zeros((5,2))?

    2、查到帮助文档的示例zeros((5,))=array([ 0.,  0.,  0.,  0.,  0.]),表示疑惑,(5,)代表什么呢?后面,省略了什么?0?1?

     1.从帮助文档得到答案:第一个参数表示矩阵的shape,如果是zeros(5,2)则给两个参数赋值了shape=5, dytpe=2, 这是错误的,(5,2)代表一个参数而已。

    help(numpy.zeros)
    Help on built-in function zeros in module numpy.core.multiarray:

    zeros(...)
        zeros(shape, dtype=float, order='C')
        
        Return a new array of given shape and type, filled with zeros.
        
        Parameters
        ----------
        shape : int or sequence of ints
            Shape of the new array, e.g., ``(2, 3)`` or ``2``.
        dtype : data-type, optional
            The desired data-type for the array, e.g., `numpy.int8`.  Default is
            `numpy.float64`.
        order : {'C', 'F'}, optional
            Whether to store multidimensional data in C- or Fortran-contiguous
            (row- or column-wise) order in memory.
        
        Returns
        -------
        out : ndarray
            Array of zeros with the given shape, dtype, and order.
        
        Examples
        --------
    np.zeros(5)
        array([ 0.,  0.,  0.,  0.,  0.])
        
    np.zeros((5,), dtype=np.int)
        array([0, 0, 0, 0, 0])
        
    np.zeros((2, 1))
        array([[ 0.],
               [ 0.]])
        
    s = (2,2)
    np.zeros(s)
        array([[ 0.,  0.],
               [ 0.,  0.]])
        
    np.zeros((2,), dtype=[('x', 'i4'), ('y', 'i4')]) # custom dtype
        array([(0, 0), (0, 0)],
              dtype=[('x', '<i4'), ('y', '<i4')])

    2、继续查帮助文档

     help(numpy.zeros(5,))
    Help on ndarray object:

    class ndarray(__builtin__.object)
     |  ndarray(shape, dtype=float, buffer=None, offset=0,
     |          strides=None, order=None)
     |  
     |  An array object represents a multidimensional, homogeneous array
     |  of fixed-size items.  An associated data-type object describes the
     |  format of each element in the array (its byte-order, how many bytes it
     |  occupies in memory, whether it is an integer, a floating point number,
     |  or something else, etc.)
     |  
     |  Arrays should be constructed using `array`, `zeros` or `empty` (refer
     |  to the See Also section below).  The parameters given here refer to
     |  a low-level method (`ndarray(...)`) for instantiating an array.
     |  
     |  For more information, refer to the `numpy` module and examine the
     |  the methods and attributes of an array.
     |  
     |  Parameters
     |  ----------
     |  (for the __new__ method; see Notes below)
     |  
     |  shape : tuple of ints
     |      Shape of created array.
     |  dtype : data-type, optional
     |      Any object that can be interpreted as a numpy data type.
     |  buffer : object exposing buffer interface, optional
     |      Used to fill the array with data.
     |  offset : int, optional
     |      Offset of array data in buffer.
     |  strides : tuple of ints, optional
     |      Strides of data in memory.
     |  order : {'C', 'F'}, optional
     |      Row-major (C-style) or column-major (Fortran-style) order.
     |  
     ..................

    这时才发现zeros的第一个参数shape是由整数或tuple表示,这时意识到(5,)表示的应该是tuple,于是查了tuple的用法及注意事项就明白了,答案在下面标红标粗加大,简单理解(5,)就代表5,随便复习下tuple用法:

    tuple

    另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:

    >>> classmates = ('Michael', 'Bob', 'Tracy')
    

    现在,classmates这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0]classmates[-1],但不能赋值成另外的元素。

    不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

    tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:

    >>> t = (1, 2)
    >>> t
    (1, 2)
    

    如果要定义一个空的tuple,可以写成()

    >>> t = ()
    >>> t
    ()
    

    但是,要定义一个只有1个元素的tuple,如果你这么定义:

    >>> t = (1)
    >>> t
    1
    

    定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1

    所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

    >>> t = (1,)
    >>> t
    (1,)
    

    Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。

    最后来看一个“可变的”tuple:

    >>> t = ('a', 'b', ['A', 'B'])
    >>> t[2][0] = 'X'
    >>> t[2][1] = 'Y'
    >>> t
    ('a', 'b', ['X', 'Y'])
    

    这个tuple定义的时候有3个元素,分别是'a''b'和一个list。不是说tuple一旦定义后就不可变了吗?怎么后来又变了?

    别急,我们先看看定义的时候tuple包含的3个元素:

    tuple-0

    当我们把list的元素'A''B'修改为'X''Y'后,tuple变为:

    tuple-1

    表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

    理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。


    展开全文
  • Python tuple 基本用法(在会 Python list 前提下)1. list 和 tuple 区别2. 例子 1. list 和 tuple 区别 list: 有序,可以增删改查。表示:[] tuple: 有序,可以查,不可增删改。表示:(,) ...

    Python 中 tuple 的基本用法(在会 Python 中 list 的前提下)

    1. list 和 tuple 的区别

    list: 有序的,可以增删改查。表示:[]
    tuple: 有序的,可以查,不可增删改。表示:(,)

    强制性:list 后面不加逗号,tuple 后面加上逗号

    2. 例子

    list 和 tuple 是优先级是一样的!

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    由上面的例子可以得知:list 与 tuple 同级,实行 “就近原则”

    3. tuple 的基本方法

    count(self, *args, **kwargs)
    index(self, *args, **kwargs)
    

    例子:
    在这里插入图片描述

    展开全文
  • Python中Tuple和List区别与用法 1.语法上差别 someTuple = (1,2) someList = [1,2] 2. 数据size上差别 a = tuple(range(1000)) b = list(range(1000)) a.__sizeof__() # 8024 b.__sizeof__() # 9088 由于...

    Python中Tuple和List的区别与用法

    1.语法上的差别

    someTuple = (1,2)
    someList  = [1,2] 
    

    2. 数据size上的差别

    a = tuple(range(1000))
    b = list(range(1000))
    
    a.__sizeof__() # 8024
    b.__sizeof__() # 9088
    

    由于tuples的操作拥有更小的size,也就意味着tuples在操作时相比list更快,当数据足够大的时候tuples的数据操作性能更优。

    3. 可执行的操作

    b    = [1,2]   
    b[0] = 3       # [3, 2]
    
    a    = (1,2)
    a[0] = 3       # Error
    

    tuples具有immutable的属性,意味着tuples内的元素一旦建立就无法更改、删除、排序,然而我们还是可以向list和tuples添加数据的。

    a     = (1,2)
    b     = [1,2]  
    
    id(a)          # 140230916716520
    id(b)          # 748527696
    
    a   += (3,)    # (1, 2, 3)
    b   += [3]     # [1, 2, 3]
    
    id(a)          # 140230916878160
    id(b)          # 748527696
    

    4. 用法
    由上述可知,tuples是immutable,list是mutable的,所以我们可以将tuples用作dictionary的key,但是list不可以

    a    = (1,2)
    b    = [1,2] 
    
    c = {a: 1}     # OK
    c = {b: 1}     # Error
    

    因为tuples不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

    5. tuple和list存储的数据特性
    (基于此篇文章)
    除了上述区别和用法以外,tuples和list还有一个区别是tuples通常是存储异质元素(heterogeneous)的数据结构,而list通常存储同质元素(homogeneous)的数据结构。

    详细解释就是:

    Tuples 通常存储的是一连串的不同种类的事务,但是我们将他们当做一个耦合的整体来处理(比如我们可以把键盘、鼠标、显示器、主机存储在一个tuples里,这些元素都是不同种类的元素,但是放在一起处理时可当作一个计算机硬件系统元素来看待,而一旦定义了这个系统,就不能随意更改已有的元素)
    List 通常存储的是一连串的相同种类的事务,所以我们可以把list中的每个元素都当做一个独立的个体来处理(也就是mutable的思想,例如list中存储了一些随机整数,他们拥有相同的属性(都是整数),但各自独立(没有任何相关性),我们可以单独的更改list中任何元素而不影响整体的数据结构)

    最后感谢阅读!!!

    展开全文
  • python中list和tuple的用法及区别

    万次阅读 多人点赞 2017-12-06 16:32:06
    list和tuple的用法及区别

    1、list-列表

     list是一种有序的集合,可以随时添加和删除其中的元素

     列出数组num中的所有元素:

     

    访问list中的元素,索引从0开始,0为第一个元素,当索引超出范围(本例索引大于9时)会报错,索引不能越界,最后一个元素      的索引是len(num)-1(len()是干嘛的?你猜)

     

     如果要取最后一个元素,除了计算索引位置,还可以用-1做索引直接取到最后一个元素(倒数第一)

      

      使用append()可以在list的尾部添加元素

      

     使用insert()可以将元素插入添加到指定位置

      

      使用pop()可以删除list最后一个元素

      使用pop(i)其中i是索引号,可以删除指定位置的元素

      

      想要替换某个元素,可以直接给对应索引号位置的元素赋值

      

      list里面的元素类型可以不同(上面的举例就可以看出来啦),不仅如此,它的元素还可以是另一个list

      

    2、tuple

    tuple是一种有序列表,它和list非常相似,但是(但是前面的话也不都是废话)

    tuple一旦初始化就不能修改,而且没有append() insert()这些方法,可以获取元素但不能赋值变成另外的元素


    如果要定义空的tuple可以写成()

    如果定义1个元素呢?(1)这样写?

    nonono

    定义一个元素要这样(1,)要加个逗号哦

    (1)这个代表的数字1,是个数


    tuple要如何改变里面的元素呢?


    其实不是tuple可以改变,而是tuple指向的list中的元素可以改变

    tuple 用( )

    lis    t用[ ]



    展开全文
  • 元组大小和元组中的元素都是只读、不可变。 元组可以存储不同数据类型数据。 创建元组 【语法】 变量=(数据1,数据2,…) 代码示例 #将元组第3个数据修改为6200并在控制台输出 salary=(1000,5200,...
  • 2、访问list中的元素,索引从0开始,0为第一个元素,当索引超出范围会报错,索引不能越界,最后一个元素 索引是len(num)-1 3、如果要取最后一个元素,除了计算索引位置,还可以用-1做索引直接取到最后一个元素 ...
  • Python中tuple元组和dict字典的用法

    千次阅读 2019-03-19 17:02:49
    列表中的元素可以进行增加和删除操作,但是,元组中的元素不能进行修改 c)元组和列表相同点: 都是一种容器,都可以同时存储不同类型数据 (2)元组创建 创建空列表:list1 = [] 创建有元素列表:list...
  • python中tuple * 和 dict **

    2018-11-21 10:05:17
    偶然见到以下用法 *tuple 和 **dict作为参数, 经过查询,才知道这是一种简要写法, 见下面例子 *tuple def foo(x, y): print(x, y) &gt;&gt;t = (1, 2) &gt;&gt;foo(*t) 1 2 **dict def foo(x, ...
  • 以下内容主要摘抄博客:... 四、tuple的方法: 1、count():查找元素在tuple出现的次数。 2.index():查找元素的第一个索引值。
  • Python3 Tuple

    2020-02-15 10:09:03
    Tuple ...注:如果你读过我上一篇博客 Python3 List , 想必你对序列类型基本用法有了一定了解,因此,我不想对元组进行过多讲解,直接上例子。 1. 索引 >>> my_tuple = ("hello", "...
  • list 1.定义: 字面意思就是一个集合,在Python中List中元素用中括号[]来表示,可以这样定义一个List: ...Python中的List是有序,所以要访问List话显然要通过序号来访问,就像是数组下标一样,一样是下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 615
精华内容 246
关键字:

python中tuple的用法

python 订阅