如何检查numpy数组是否为空?
我使用了以下代码,但如果数组包含零,则会失败.
if not self.Definition.all():
Run Code Online (Sandbox Code Playgroud)
这是解决方案吗?
if self.Definition == array( [] ):
Run Code Online (Sandbox Code Playgroud)
Jos*_*del 245
您始终可以查看该.size属性.它被定义为一个整数,0当数组中没有元素时,它是零():
import numpy as np
a = np.array([])
if a.size == 0:
# Do something when `a` is empty
Run Code Online (Sandbox Code Playgroud)
Col*_*nic 20
http://www.scipy.org/Tentative_NumPy_Tutorial#head-6a1bc005bd80e1b19f812e1e64e0d25d50f99fe2
NumPy的主要对象是同构多维数组.在Numpy中,尺寸称为轴.轴数是等级.Numpy的数组类称为ndarray.它也被别名数组所知.ndarray对象的更重要的属性是:
ndarray.ndim
数组的轴数(维度).在Python世界中,维度的数量称为排名.ndarray.shape
数组的维度.这是一个整数元组,表示每个维度中数组的大小.对于具有n行和m列的矩阵,形状将为(n,m).因此,形状元组的长度是等级或维数ndim.ndarray.size
数组元素的总数.这等于形状元素的乘积.
不过,请注意。请注意,np.array(None).size返回1!这是因为a.size 等于 np.prod(a.shape),np.array(None).shape是(),空乘积是1。
>>> import numpy as np
>>> np.array(None).size
1
>>> np.array(None).shape
()
>>> np.prod(())
1.0
Run Code Online (Sandbox Code Playgroud)
因此,我使用以下命令测试numpy数组是否具有元素:
>>> def elements(array):
... return array.ndim and array.size
>>> elements(np.array(None))
0
>>> elements(np.array([]))
0
>>> elements(np.zeros((2,3,4)))
24
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
172410 次 |
| 最近记录: |