为了账号安全,请及时绑定邮箱和手机立即绑定

Numpy 语句而不是双 for 循环

Numpy 语句而不是双 for 循环

一只斗牛犬 2021-09-11 17:44:21
我下面的Python代码很慢,有没有可能用Numpy语句完全写出这部分?    m = len(self.man_list)    s = len(self.newnew)self.zeroMatrix = np.zeros((m,s))    for k in range(m):        a1 = self.man_list[k][2]        b1 = self.man_list[k][0]        a2 = self.man_list[k][3]        b2 = self.man_list[k][1]        for f, part in enumerate(self.extra_list):            x1 = self.extra_list[f][0]            y1 = self.extra_list[f][2]            x2 = self.extra_list[f][1]            y2 = self.extra_list[f][3]            first = np.array((x1, y1))            second = np.array((x2, y2))            third = np.array((a1, b1))            forth = np.array((a2, b2))            dist1 = np.linalg.norm(first - third)            dist2 = np.linalg.norm(second - forth)            distance = (dist1 + dist2)            self.zeroMatrix[k][f] = distance首先,我创建了一个零 ( self.zeroMatrix)矩阵。self.man_list并self.extra_list包含线的起点和终点坐标点。例如:self.man_list = [ [ [1,2], [3,4] ],...]self.extra_list = [ [ [11,30], [4, 10] ],...]我得到从第一个列表的每一行到另一个列表的每一行的距离,然后我在self.zeroMatrix.我非常感谢您的回答!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信