在添加行的情况下,你最好的选择是创建一个与数据集最终一样大的数组,然后向它添加数据 row-by-row:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
>>> 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 函数会有同样的问题。) 如果你想一次构建一个矩阵,最好把它放在一个列表中,直到它完成,然后将它转换成数组。
1
2
3
4
|
mylist = [] for item in data: mylist.append(item) mat = numpy.array(mylist) |
item 可以是列表,数组或者任何 iterable,只要每个 item 具有相同数量的元素。
在这种特殊情况下,你可以简单地使用( data 是一些保存矩阵列的iterable )
1
|
mat = numpy.array(data) |
(也请注意,使用 list 作为变量名可能不是好做法,因为它通过该名称屏蔽内置类型,这可能导致 Bug 。)
以上这篇在NumPy中创建空数组/矩阵的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/dowemo/article/details/78412851