Python 如何清除numpy阵列?

Python 如何清除numpy阵列?,python,numpy,Python,Numpy,如何清除一维numpy数组 如果是一个列表,我会这样做: my_list = [] 如何使用numpy实现这一点 编辑: 我所说的清除是指删除同一数组中的所有元素。 对于list,我必须使用my\u list.clear()当创建一个numpy数组时,会根据其大小分配特定的内存。如果您不初始化它,那么它将包含垃圾值。numpy数组的大小是固定的,在创建它时必须给出它的大小 例如: np.empty(10) 创建未初始化的大小为10的numpy数组 所以要清除它,你必须了解你想要清除它的价值是

如何清除一维numpy数组

如果是一个列表,我会这样做:

my_list = []
如何使用numpy实现这一点

编辑:

我所说的清除是指删除同一数组中的所有元素。
对于list,我必须使用
my\u list.clear()

当创建一个numpy数组时,会根据其大小分配特定的内存。如果您不初始化它,那么它将包含垃圾值。numpy数组的大小是固定的,在创建它时必须给出它的大小

例如:

np.empty(10)
创建未初始化的大小为10的numpy数组

所以要清除它,你必须了解你想要清除它的价值是什么?是否将所有值清除为0或某些随机值?但不能将其设置为大小0

现在假设您希望将所有值清除为0,然后可以执行以下操作:

a = np.empty(10)
print (hex(id(a)))
# This is not actually clearing but creating 
# a new numpy array of zeros just like list l = []
a = np.zeros_like(a)
print (hex(id(a)))
# This sets all the value of numpy array to 0 using broadcasting
a[:] = 0
print (hex(id(a)))
列表是可变长度的数据结构。当您说
l=[]
时,实际上并不是在清除一个新列表,而是在创建一个新的空列表

l = [1,2,3]
print (hex(id(l)))
l = []
print (hex(id(l)))

你说的“清楚”是什么意思?代码

my_list = []
只需覆盖以前存储为
my_list
的内容,不管它是列表、数组还是其他内容。如果您希望这样做,那么如果
my_list
是一个数组,则使用完全相同的语法

如果“清除”是指删除列表中的所有元素,则使用

my_list.clear()
它删除列表中的所有元素并保留
id

>>> a = [4]*2
>>> a
[4, 4]
>>> id(a)
140202631135872
>>> a.clear()
>>> a
[]
>>> id(a)
140202631135872
对于numpy数组,不存在与此等效的值,因为无法更改numpy数组中的元素数

如果只想将数组中的所有值设置为0:

>>> arr = np.random.randn(3)
>>> arr
array([-1.11074625, -0.12784997, -0.53716969])
>>> id(arr)
140203438053536
>>> arr[:] = 0
>>> arr
array([0., 0., 0.])
>>> id(arr)
140203438053536

这根本不能清除python列表。为某个变量分配一个新的空列表。在任何情况下,都可以对numpy数组执行相同的操作,但实际上无法“清除”numpy数组,因为它们无法更改size@juanpa.arrivillaga对不起,我有点误会。现在我明白了。非常感谢。