Snehal Shekatkar Snehal Shekatkar - 6 months ago 23
Python Question

Why the elements of numpy array not same as themselves?

How do I explain the last line of these?

>>> a = 1
>>> a is a
>>> a = [1, 2, 3]
>>> a is a
>>> a = np.zeros(3)
>>> a
array([ 0., 0., 0.])
>>> a is a
>>> a[0] is a[0]

I always thought that everything is at least "is" that thing itself!


NumPy doesn't store array elements as Python objects. If you try to access an individual element, NumPy has to create a new wrapper object to represent the element, and it has to do this every time you access the element. The wrapper objects from two accesses to a[0] are different objects, so a[0] is a[0] returns False.