python定义一个空数组_在NumPy中如何创建一个空的数组/矩阵?

在Python的NumPy库中,直接创建一个空的数组或矩阵并逐步添加元素效率低下,因为这会导致数据复制。最佳做法是在开始时根据预期的最终大小创建一个全零数组,然后直接赋值填充。如果不确定尺寸,可以使用`numpy.empty`创建一个空数组,并在知道尺寸后追加数据。
摘要由CSDN通过智能技术生成

如何以我通常使用列表(List)的方式使用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中这样使用数组或矩阵?

最佳解决方案

上面对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.,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值