• 如何在NumPy中创建空数组/矩阵?python建立空的ndarray


    在添加行的情况下,你最好的选择是创建一个与数据集最终一样大的数组,然后向它添加数据 row-by-row:

    >>> import numpy
    >>> a = numpy.zeros(shape=(5,2))
    >>> a
    array([[ 0., 0.],
     [ 0., 0.],
     [ 0., 0.],
     [ 0., 0.],
     [ 0., 0.]])
    >>> a[0] = [1,2]
    >>> a[1] = [2,3]
    >>> a
    array([[ 1., 2.],
     [ 2., 3.],
     [ 0., 0.],
     [ 0., 0.],
     [ 0., 0.]])

    次佳解决方案

    NumPy数组是一个与列表非常不同的数据结构,它被设计为以不同的方式使用。您对hstack的使用可能非常低效......每当您调用它时,现有数组中的所有数据都将被复制到一个新的数据中。 (append函数将有相同的问题。)如果您想一次构建您的只有一个列的矩阵,最好将它保存在列表中,直到它完成,然后才转换为一个数组。

    例如

    
    mylist = []
    for item in data:
        mylist.append(item)
    mat = numpy.array(mylist)
    

    item可以是一个列表,一个数组或任何可迭代的结构,只要每个item具有相同数量的元素。在这个特定的情况下(data是一些迭代持有矩阵列),你可以简单地使用

    
    mat = numpy.array(data)
    

    (还要注意,使用list作为变量名可能不是一个好的做法,因为它掩盖了内置类型的名称,这可能会导致错误。

  • 相关阅读:
    poj3068
    tyvj1864 [Poetize I]守卫者的挑战
    BZOJ1597 [Usaco2008 Mar]土地购买
    [AtCoder Regular Contest 083] Bichrome Tree
    [LUOGU]3919 【模板】可持久化数组
    [LUOGU]P3701 主席树(假的)
    2018.7.20模拟赛
    [CodeForces]1006F Xor Path
    2018.7.19模拟赛
    [LUOGU]P1373 小a和uim之大逃离
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/15346659.html
Copyright © 2020-2023  润新知