开发者社区> 问答> 正文

如何在NumPy中创建一个空数组/矩阵?

我不知道如何以通常使用列表的方式使用数组或矩阵。我想创建一个空数组(或矩阵),然后一次向其中添加一列(或行)。

目前,我能找到的唯一方法是:

mat = None for col in columns: if mat is None: mat = col else: mat = hstack((mat, col)) 而如果这是一个列表,我会做这样的事情:

list = [] for item in data: list.append(item) 有没有办法对NumPy数组或矩阵使用这种表示法?

展开
收起
保持可爱mmm 2020-01-16 14:53:18 557 0
1 条回答
写回答
取消 提交回答
  • 您对有效使用NumPy的思维模式有误。NumPy数组存储在连续的内存块中。如果要向现有阵列添加行或列,则需要将整个阵列复制到新的内存块中,从而为要存储的新元素创建间隙。如果反复进行以构建数组,则效率非常低下。

    在添加行的情况下,最好的选择是创建一个与数据集最终大小一样大的数组,然后逐行向其中添加数据:

    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.]])

    问题来源于stack overflow

    2020-01-16 14:53:34
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载