2012-07-02 10 views
78

¿Cómo puedo verificar si la matriz numpy está vacía o no?¿Cómo puedo verificar si la matriz numpy está vacía o no?

He utilizado el siguiente código, pero esto es fallido si la matriz contiene un cero.

if not self.Definition.all(): 

¿es esta la solución?

if self.Definition == array([]): 
+4

'len (matriz ([]))' es 0. 'len (matriz ([0])' es 1. –

+2

¿desea probar para una matriz de longitud cero, una matriz que contiene todos los ceros, o ambos? ¿Cuál es su definición de 'vacío'? – jozzas

+6

@StevenRumbalski: Pero 'len (matriz ([[]])' es 1 también! – strpeter

Respuesta

132

Siempre se puede echar un vistazo al atributo .size:

import numpy as np 
a = np.array([]) 
print a.size # 0 
8

http://www.scipy.org/Tentative_NumPy_Tutorial#head-6a1bc005bd80e1b19f812e1e64e0d25d50f99fe2

objeto principal de NumPy es la matriz multidimensional homogénea. En Numpy, las dimensiones se llaman ejes. La cantidad de ejes es rango. La clase de matriz de Numpy se llama ndarray. También es conocido por la matriz de alias. Los atributos más importantes de un objeto ndarray son:

ndarray.ndim
número de ejes (dimensiones) de la matriz. En el mundo de Python, el número de dimensiones se denomina rango.

ndarray.shape
las dimensiones de la matriz. Esta es una tupla de enteros que indican el tamaño de la matriz en cada dimensión. Para una matriz con n filas y m columnas, la forma será (n, m). La longitud de la tupla de forma es, por lo tanto, el rango o el número de dimensiones, ndim.

ndarray.size
la cantidad total de elementos de la matriz. Esto es igual al producto de los elementos de forma.

Cuestiones relacionadas