当前位置: 首页 > 面试题库 >

numpy数组的“输入”运算符?

丁昌翰
2023-03-14
问题内容

如何在numpy数组上执行“输入”操作?(如果给定的numpy数组中存在元素,则返回True)

对于字符串,列表和字典,该功能直观易懂。

这是将其应用于numpy数组时得到的结果

a
array([[[2, 3, 0],
    [1, 0, 1]],

   [[3, 2, 0],
    [0, 1, 1]],

   [[2, 2, 0],
    [1, 1, 1]],

   [[1, 3, 0],
    [2, 0, 1]],

   [[3, 1, 0],
    [0, 2, 1]]])

b = [[3, 2, 0],
    [0, 1, 1]]

b in a
True
#Aligned with the expectation

c = [[300, 200, 0],
    [0, 100, 100]]

c in a
True
#Not quite what I expected

问题答案:

您可以比较的输入数组equality,这将broadcasteda最后两个轴上每个位置的所有元素与第二个数组中对应位置的元素进行比较。这将产生一个匹配的布尔数组,在该数组中,我们检查ALL最后两个轴上的ANY匹配,最后检查是否匹配,就像这样-

((a==b).all(axis=(1,2))).any()

样品运行

1)输入:

In [68]: a
Out[68]: 
array([[[2, 3, 0],
        [1, 0, 1]],

       [[3, 2, 0],
        [0, 1, 1]],

       [[2, 2, 0],
        [1, 1, 1]],

       [[1, 3, 0],
        [2, 0, 1]],

       [[3, 1, 0],
        [0, 2, 1]]])

In [69]: b
Out[69]: 
array([[3, 2, 0],
       [0, 1, 1]])

2)广播的元素比较:

In [70]: a==b
Out[70]: 
array([[[False, False,  True],
        [False, False,  True]],

       [[ True,  True,  True],
        [ True,  True,  True]],

       [[False,  True,  True],
        [False,  True,  True]],

       [[False, False,  True],
        [False, False,  True]],

       [[ True, False,  True],
        [ True, False,  True]]], dtype=bool)

3)ALL匹配最后两个轴,最后ANY匹配:

In [71]: (a==b).all(axis=(1,2))
Out[71]: array([False,  True, False, False, False], dtype=bool)

In [72]: ((a==b).all(axis=(1,2))).any()
Out[72]: True

以下为类似的步骤ca-

In [73]: c
Out[73]: 
array([[300, 200,   0],
       [  0, 100, 100]])

In [74]: ((a==c).all(axis=(1,2))).any()
Out[74]: False


 类似资料:
  • 广播,是指 Numpy 在算术运算期间处理不同形状的数组的能力。 对数组的算术运算通常在相应的元素上进行。 如果两个阵列具有完全相同的形状,则这些操作被无缝执行,这一小节将通过数组的运算来展示广播的一些特征。 1. 常见的两种广播途径 1.1 相同大小的数组计算 如果两个数组的维度完全一致,那么运算过程是两个数组相应元素的逐个计算。 案例 定义两个完全一致的数组: arr0 = np.array(

  • 主要内容:numpy.reciprocal(),numpy.power(),numpy.mod(),复数数组处理函数NumPy 数组的“加减乘除”算术运算,分别对应 add()、subtract()、multiple() 以及 divide() 函数。 注意:做算术运算时,输入数组必须具有相同的形状,或者符合数组的广播规则,才可以执行运算。 下面看一组示例: 输出结果: 下面介绍了 NumPy  中其他重要的算术运算函数。 numpy.reciprocal() 该函数对数组中的每个元素取倒数,并

  • 问题内容: 我在创建numpy数组的numpy数组时遇到问题。我将在一个循环中创建它: 所需结果: 实际结果: 可能吗?我不知道数组的最终尺寸,因此无法使用固定尺寸对其进行初始化。 问题答案: 永远不要在循环中追加数组:与基本的Python相比,这是NumPy非常不擅长的一项操作。这是因为您要对每个数据进行完整复制,这将花费您二次时间。 相反,只需将您的数组附加到Python列表中,并在最后进行转

  • 主要内容:bitwise_and(),bitwise_or(),Invert(),left_shift(),right_shift()本节重点讲解 NumPy 的位运算,NumPy 中提供了以下按位运算函数: numpy按位运算函数 序号 函数 位运算符 描述说明 1 bitwise_and & 计算数组元素之间的按位与运算。 2 bitwise_or | 计算数组元素之间的按位或运算。 3 invert ~ 计算数组元素之间的按位取反运算。 4 left_shift << 将二进制数的位数向左

  • 在Numpy中,以 bitwise_ 开头的函数是位运算函数。Numpy 位运算包括以下几个函数: 函数 描述 bitwise_and 对数组元素执行位与操作 bitwise_or 对数组元素执行位或操作 invert 按位取反 left_shift 向左移动二进制表示的位 right_shift 向右移动二进制表示的位 1. 位运算 与普通运算不同,位运算是发生在二进制形式之间的,因此在演示位运

  • 问题内容: 如何串联这些数组? 首先具有形状 第二个形状 最终结果应该是 我试过了 但是我得到这个错误 我究竟做错了什么? 问题答案: 要使用,我们需要将第二个数组扩展到,然后沿着- 或者,我们可以使用它来照顾它- 样品运行- 如果是这样,它的一个阵列具有的形状,很可能所有的数据都包含在它的唯一元素,我们需要 压扁 在连接前出来。为此,我们也可以使用它。这里是一个示例,目的是为了清楚地说明这一点-