如何防止itemfreq()函数在遇到空的numpy数组时崩溃?

时间:2015-11-17 20:56:15

标签: python arrays numpy scipy

我尝试使用scipy中的itemfreq()函数来计算numpy数组中唯一元素的频率。

基本上,我已经声明了一个输出numpy数组的变量(让我们称之为#34; A")。根据之前的输入," A"可以包含0到13个元素。当" A"至少包含1个元素,itemfreq()函数可以很好地工作,但是如果" A"是空的,我收到以下错误:

IndexError: index out of bounds.

我希望能够写出这样一个简单的陈述:

if A = []: print ("Sorry, your array is empty")
else: print (itemfreq(A))

但我不确定如何在python-speak中说第一行代码("如果A是一个空数组")。

谢谢!

3 个答案:

答案 0 :(得分:0)

使用try ... except子句捕获异常:

try:
    print(itemfreq(A))
except IndexError:
    print("Sorry, your array is empty")

您应该比try-except

更喜欢if/else

Better to 'try' something and catch the exception or test if its possible first to avoid an exception?

Using try vs if in python

答案 1 :(得分:0)

我会将其表述为

operator>>

if len(A) == 0:
    print ("Sorry, your array is empty")

答案 2 :(得分:0)

空列表/数组的长度为零:

if len(A) == 0:
    print ("Sorry")