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

A cranky quirk:将函数应用于所有两个1D数组对,以获得一个2D数组

段干博明
2023-03-14
问题内容

假设我有2个一维(1D)numpy数组ab,其长度分别为n1n2。我还有一个函数F(x,y),它有两个值。现在,我想将该函数应用于两个1D数组中的每对值,因此结果将是一个带有shape的2D
numpy数组n1, n2i, j二维数组的元素F(a[i], b[j])

没有大量的for循环,我一直找不到找到这种方法的方法,而且我敢肯定,在numpy中,有一种更简单(更快)的方法。

提前致谢!


问题答案:

您可以使用numpy广播在两个数组上进行计算,使用以下命令将其a转换为垂直2D数组newaxis

In [11]: a = np.array([1, 2, 3]) # n1 = 3
    ...: b = np.array([4, 5]) # n2 = 2
    ...: #if function is c(i, j) = a(i) + b(j)*2:
    ...: c = a[:, None] + b*2

In [12]: c
Out[12]: 
array([[ 9, 11],
       [10, 12],
       [11, 13]])

进行基准测试:

In [28]: a = arange(100)

In [29]: b = arange(222)

In [30]: timeit r = np.array([[f(i, j) for j in b] for i in a])
10 loops, best of 3: 29.9 ms per loop

In [31]: timeit c = a[:, None] + b*2
10000 loops, best of 3: 71.6 us per loop


 类似资料:
  • 问题内容: 我有2个1d数组,而我正在尝试将它们填充到JAVA中的单个2d数组中。 例如: 结果应为: 我该怎么办?我目前有这样的事情: 我有点被困在那里… 问题答案: 2D数组是数组的数组。那你为什么不试试这个呢? 为了确保它是如此简单并且可以正常工作,请进行以下测试:

  • 我有一个pandas数据框,其中包含列和。我想从他们那里得到和。中有一个函数,名为,用于执行此操作。它接收和,并给出。我是这样做的: 我想定义一个函数并应用一次以节省时间。我看了看这里,这里和这里,但是我找不到一种方法来使用一个函数制作两列。谢谢。

  • 问题内容: 我正在尝试连接4个数组,一个1D形状的数组(78427,)和3个2D形状的数组(78427,375/81/103)。基本上,这是4个数组,具有78427个图像的特征,其中1D数组每个图像仅具有1个值。 我尝试串联数组,如下所示: 这将导致以下错误: 追溯(最近一次调用):文件“”,第1行,在ValueError中:所有输入数组的维数必须相同 问题似乎是一维数组,但是我真的看不出来为什么

  • 本文向大家介绍写出一个函数,输入是两个数组,输出是将两个数组中所有元素排序以后用一个数组输出。相关面试题,主要包含被问及写出一个函数,输入是两个数组,输出是将两个数组中所有元素排序以后用一个数组输出。时的应答技巧和注意事项,需要的朋友参考一下 参考回答: //快速排序 //两路归并 cerr << "内存分配失败" << endl;  

  • 在这里,我试图将转换为一个1D数组。

  • 问题内容: 您可以使用两个不同的列中的值作为参数来制作python pandas函数吗? 我有一个函数,如果两列的值在相同范围内,则返回1。否则返回0: 我希望第一个参数成为数据框中的一列,以使函数将采用该列中每一行的值。例如是,第二个参数是df [‘ResponseCol’]`。我希望结果是数据框中的新列。我遇到了几个 回答了类似问题的线程,但看起来这些参数是变量,而不是数据帧行中的值。 我尝试

  • 我正在处理C#并发队列和多线程在套接字编程TCP/IP 首先,我已经完成了套接字编程本身。这意味着,我已经完成了关于客户机、服务器和通信本身的编码 到目前为止,我已经实现了putting_data到queue1(Thread1)和全部出列(Thread2),其速度大约是700Mbps 我使用两个concurrent_queue的原因是,我希望通信和类型转换工作在后台处理,而不考虑有关控制的主要过程

  • 本文向大家介绍在Python中将2d numpy数组展平为1d数组,包括了在Python中将2d numpy数组展平为1d数组的使用技巧和注意事项,需要的朋友参考一下 2d numpy数组是数组的数组。在本文中,我们将看到如何展平它以使元素成为一维数组。 与扁平化 numpy中的flatten函数是将2d数组转换为1D数组的直接方法。 示例 输出结果 运行上面的代码给我们以下结果- 带旅行 还有一