查找未知形状的numpy ndarray的第一个元素

格雷格

如果您不知道ndarray的形状,是否有一种简单的方法可以取出ndarray的第一项?

例如。给定以下数组:

arr = np.array([[[1,2,3,4], [5,6,7,8], [9,10,11,12]]])

>>> [[[ 1  2  3  4]
      [ 5  6  7  8]
      [ 9 10 11 12]]]

1不假设我知道此数组的形状是1 * 3 * 4。

我也对最小化解决方案的内存和cpu需求感兴趣。

迪卡卡

您可以使用.ravel()来获取ndarray的平面视图,然后连锁用它[0]来提取的第一要素,像这样-

arr.ravel()[0]

请注意,这.flatten()会创建一个副本,因此就内存而言,即使它仍然可以为您提供正确的结果,也不是一个好主意。

检查操作是否正在创建copy或的一种方法view是通过检查的内存共享标志np.may_share_memory,例如-

In [15]: np.may_share_memory(arr.flatten(),arr)
Out[15]: False # Not sharing memory means a copy

In [16]: np.may_share_memory(arr.ravel(),arr)
Out[16]: True # Sharing memory means a view

看来,也可以.flat用来获取视图。


似乎在np.take-

np.take(arr,0) # Input array is arr, 0 is the index position

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

遍历numpy ndarray,管理第一个和最后一个元素

如何将具有不同形状的两个ndarray的最后一个元素与第一个元素组合

查找大于阈值的NumPy数组的第一个和最后一个元素

查找包含“-”的数组的第一个元素

通过谓词查找第一个元素

查找文本后的第一个元素

在向量中查找第一个缺少的元素

使用jQuery查找并聚焦第一个元素

查找第一个偶数元素并输出索引

查找重复元素的第一个索引

使用jQuery查找元素的第一个动态类的每个第一个实例

查找在 numpy 数组中多次出现的第一个元素

NumPy:如何根据某些条件确定 ndarray 的第一个轴的索引?

ArrayList查找第一个和最后一个元素

使用递归查找列表的第一个和最后一个元素

Matlab:查找向量中元素的第一个和最后一个出现?

NumPy数组中的第一个和最后一个元素

查找第一个索引,其中元素之前的元素总和大于元素本身

从第k个最后一个元素到第k个第一个元素的numpy索引

在列表中查找比当前元素大n倍的第一个元素

查找带有类的第一个元素,使用类追加标题元素

Capybara :: Ambiguous匹配,找到2个与xpath匹配的元素-查找第一个链接

numpy-按第一个数组的单轴对两个ndarray进行排序

查找具有特定一级后代的第一个父元素

通过第一个数组的元素连接两个 numpy 数组

Numpy max 仅在一对数组的第一个元素上

递归查找第一个链表的最后一个元素的第k个-Python

查找一个元素是否被仅第一个元素的id的另一个元素覆盖

查找第一个零元素而忽略numpy数组中的前导零