gpt4 book ai didi

python - 清除 numpy 数组的元素

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:31 31 4
gpt4 key购买 nike

有没有一种简单的方法可以清除 numpy 数组的所有元素?我试过:

删除数组名

这将完全删除数组。我在迭代数千次的 for 循环中使用这个数组,所以我更喜欢保留这个数组,但每次都用新元素填充它。

我试过 numpy.delete,但根据我的要求,我没有看到子数组规范的使用。

*已编辑*:

数组大小不会相同。

我在开始的循环内分配空间,如下所示。如果这是错误的方法,请纠正我:

arrname = arange(x*6).reshape(x,6)

我读取了一个数据集并为数据集中的每个元组构建了这个数组。我所知道的是列数将相同但行数不同。例如,第一次我可能需要一个大小为 (3,6) 的数组,下一个元组为 (1,6),下一次为 (4,6) 等等。我填充数组的方式如下:

arrname[:,0] = lstname1
arrname[:,1] = lstname2
...

换句话说,列是由元组构造的列表填充的。因此,在下一个循环开始之前,我想清除它的元素并使其为连续循环做好准备,因为我不希望前一个循环的残余物混合当前内容。

最佳答案

我不确定你所说的清晰是什么意思,数组中总会存储一些值,但你可以将这些值设置为某些值,例如:

>>> A = numpy.array([[1, 2], [3, 4], [5, 6]], dtype=numpy.float)
>>> A
array([[ 1., 2.],
[ 3., 4.],
[ 5., 6.]])

>>> A.fill(0)
>>> A
array([[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])

>>> A[:] = 1.
>>> A
array([[ 1., 1.],
[ 1., 1.],
[ 1., 1.]])

更新

首先,你的问题很不明确。你越努力写一个好问题,你就会得到更好的答案。一个好的问题应该让我们清楚地知道你想做什么以及为什么。示例数据也非常有用,只是数量很少,所以我们可以准确地看到您正在尝试做什么。

话虽这么说。似乎您应该为每次迭代创建一个新数组。创建数组非常快,并且不清楚为什么在大小和内容需要更改时要重用数组。如果您出于性能原因尝试重用它,您可能不会看到任何可测量的差异,调整数组大小并不比创建新数组快得多。您可以通过调用 numpy.zeros((X, 6))

创建一个新数组

同样在你的问题中你说:

the columns are filled from lists constructed from the tuples

如果您的数据已经存储为元组列表,您可以使用 numpy.array 将其转换为数组。您无需费心创建数组并填充它。例如,如果我想从元组列表中获取 (2, 3) 数组,我会这样做:

data = [(0, 0, 1), (0, 0, 2)]
A = numpy.array(data)

# or if the data is stored like this
data = [(0, 0), (0, 0), (1, 2)]
A = numpy.array(data).T

希望对您有所帮助。

关于python - 清除 numpy 数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11514394/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com