Python空数组判断
Posted m0_61314700
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python空数组判断相关的知识,希望对你有一定的参考价值。
在使用numpy找到指定元素对应索引时,一般会使用numpy.argwhere()或numpy.where()函数。
正常使用numpy.argwhere()函数时,返回结果是元素的坐标。
但是当数组内没有指定元素时,会返回[],比如下面这段程序
import numpy
x = numpy.arange(5) #[0,1,2,3,4]
y = numpy.argwhere(x==5)
输出y时结果为[]
print(y) #[]
查看y的布尔值时,结果为False
print(bool(y)) #False
并报错
DeprecationWarning: The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.
根据Python提示,可以使用array.size来判断数组是否为空。
print(y.size) # 0
修改程序发现空数组的值为0,而非空数组的值>0。
因此可以使用这个方式来判断空数组。
怎么判断数组是null还是空??数组空是指数组中没有元素??数组null是数组中元素都是0??
数组为null:是创建了数组的引用,但在堆中并没有数组中的元素例:
int[] array1 = null;
array1是数组类型的空引用,栈中名为array1的内存空间没有存放任何地址。
数组为空:数组是空其实就是数组的长度为0,数组是真正的对象,只是对象中没有元素,也就是说里面没有内容
例:
int[] array = ;
此时创建了数组,数组的长度为0,是一个空数组,但是array不是null,它也是一个对象,只不过它的元素个数为0。
判断数组为空,使用array.length0可以。
但arraynull不可以,这种会报错,Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: -1
直接使用变量名==null
例:
String[ ] arr = null;
if(arr == null)… 参考技术A (1)对于byte 、short 、int 、long、double类型的初始值默认是0;
float默认是0.0,
String默认是null。
(2)是的. 而“ ”本身是一个实例,有自己的对象空间,注意:此时虚拟机已经给它分配了内存,只不过是值为0而已。
(3)不是的. null用来表示一个引用没有实例存在,即虚拟机没有给它分配内存.本回答被提问者采纳
以上是关于Python空数组判断的主要内容,如果未能解决你的问题,请参考以下文章
python基于组合逻辑判断替换numpy数组中的满足条件的元素相等判断替换numpy数组中的指定数值为另一个数值大小判断替换numpy数组中大于指定阈值的数值为另一个值
python numpy.row_stack?想知道怎么修改
python使用numpy的array_equal函数判断两个numpy数组是否具有相同的形状(shape)和元素(elements)如果都满足则返回True否则返回False