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

Python数据分析numpy入门

使用 CUDA 在 python 中展开一个可并行化的 for 循环

Python数据清洗——Numpy