简体   繁体   中英

Why the elements of numpy array not same as themselves?

How do I explain the last line of these?

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

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 .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM