仅需6道题轻松掌握SciPy空间计算基础 | Python技能树征题

0. 前言

空间计算探讨利用空间原则计算的原理和方法处理空间数据,其中空间计算是指在几何空间中表示的数据,我们需要在许多任务中处理空间问题,例如计算空间中两点间的距离,我们就通过 6Python SciPy 编程题来掌握解决基础空间计算问题的方法吧!

1. 第 1 题:三角剖分

知识点描述:多边形的三角剖分可以将多边形划分为多个三角形,这些三角形可用于计算多边形的面积。
问题描述:编写程序从给定点生成的多边形进行三角剖分,请从以下选项中选出你认为正确的答案:
A.

import numpy as np
from scipy.spatial import Delaunay
import matplotlib.pyplot as plt
points = np.array([[2, 4], [3, 4], [3, 0], [2, 2], [4, 1], [5, 5]])
simplices = Delaunay(points).points
plt.triplot(points[:, 0], points[:, 1], simplices)
plt.scatter(points[:, 0], points[:, 1], color='m')
plt.show()

B.

import numpy as np
from scipy.spatial import Delaunay
import matplotlib.pyplot as plt
points = np.array([[2, 4], [3, 4], [3, 0], [2, 2], [4, 1], [5, 5]])
simplices = Delaunay(points).neighbors
plt.triplot(points[:, 0], points[:, 1], simplices)
plt.scatter(points[:, 0], points[:, 1], color='m')
plt.show()

C.

import numpy as np
from scipy.spatial import Delaunay
import matplotlib.pyplot as plt
points = np.array([[2, 4], [3, 4], [3, 0], [2, 2], [4, 1], [5, 5]])
simplices = Delaunay(points).simplices
plt.triplot(points[:, 0], points[:, 1], simplices)
plt.scatter(points[:, 0], points[:, 1], color='m')
plt.show()

D.

import numpy as np
from scipy.spatial import Delaunay
import matplotlib.pyplot as plt
points = np.array([[2, 4], [3, 4], [3, 0], [2, 2], [4, 1], [5, 5]])
simplices = Delaunay(points).coplanar
plt.triplot(points[:, 0], points[:, 1], simplices)
plt.scatter(points[:, 0], points[:, 1], color='m')
plt.show()

正确答案: C

2. 第 2 题:凸包

知识点描述:凸包是覆盖所有给定点的最小凸多边形。
问题描述:已知存在若干给定点,创建能够覆盖这些所有点的最小凸多边形,请从以下选项中选出你认为正确的答案:
A.

import numpy as np
from scipy.spatial import ConvexHull
import matplotlib.pyplot as plt
points = np.array([[2, 4], [3, 4], [3, 0], [2, 2], [4, 1], [5, 5], [6, 7]])
hull_points = ConvexHull(points).points
plt.scatter(points[:,0], points[:,1])
for simplex in hull_points:
    plt.plot(points[simplex,0], points[simplex,1], 'm-')
plt.show()

B.

import numpy as np
from scipy.spatial import ConvexHull
import matplotlib.pyplot as plt
points = np.array([[2, 4], [3, 4], [3, 0], [2, 2], [4, 1], [5, 5], [6, 7]])
hull_points = ConvexHull(points).simplices
plt.scatter(points[:,0], points[:,1])
for simplex in hull_points:
    plt.plot(points[simplex,0], points[simplex,1], 'm-')
plt.show()

C.

import numpy as np
from scipy.spatial import ConvexHull
import matplotlib.pyplot as plt
points = np.array([[2, 4], [3, 4], [3, 0], [2, 2], [4, 1], [5, 5], [6, 7]])
hull_points = ConvexHull(points).neighbors
plt.scatter(points[:,0], points[:,1])
for simplex in hull_points:
    plt.plot(points[simplex,0], points[simplex,1], 'm-')
plt.show()

D.

import numpy as np
from scipy.spatial import ConvexHull
import matplotlib.pyplot as plt
points = np.array([[2, 4], [3, 4], [3, 0], [2, 2], [4, 1], [5, 5], [6, 7]])
hull_points = ConvexHull(points).coplanar
plt.scatter(points[:,0], points[:,1])
for simplex in hull_points:
    plt.plot(points[simplex,0], points[simplex,1], 'm-')
plt.show()

正确答案: B

3. 第 3 题:K-D树

知识点描述:K-D树是为最近邻查询而优化的数据结构。
问题描述:使用给定点构造 K-D树,并且根据构造的 K-D树距离查询点 (2, 3) 的最近的点,请从以下选项中选出你认为正确的答案:
A.

from scipy.spatial import KDTree
points = [(-2, -1), (3, 8), (-2, 5), (-2, -3)]
kdtree = KDTree(points)
res = kdtree.query((2, 3))
print(res)

B.

from scipy.spatial import KDTree
points = [(-2, -1), (3, 8), (-2, 5), (-2, -3)]
kdtree = KDTree(points)
res = kdtree.query_ball_point((2, 3))
print(res)

C.

from scipy.spatial import KDTree
points = [(-2, -1), (3, 8), (-2, 5), (-2, -3)]
kdtree = KDTree(points)
res = kdtree.query_pairs((2, 3))
print(res)

D.

from scipy.spatial import KDTree
points = [(-2, -1), (3, 8), (-2, 5), (-2, -3)]
kdtree = KDTree(points)
res = kdtree.query_ball_tree((2, 3))
print(res)

正确答案: A

4. 第 4 题:曼哈顿距离

知识点描述:计算曼哈顿距离,即城市街区距离。
问题描述:查找给定点之间的曼哈顿距离,请从以下选项中选出你认为正确的答案:
A.

from scipy.spatial.distance import euclidean
points_1 = (5, 5)
points_2 = (10, 10)
res = euclidean(points_1, points_2)
print(res)

B.

from scipy.spatial.distance import cityblock
points_1 = (5, 5)
points_2 = (10, 10)
res = cityblock(points_1, points_2)
print(res)

C.

from scipy.spatial.distance import euclidean
points_1 = (5, 5)
points_2 = (10, 10)
res = euclidean(points_1, points_2) ** 2
print(res)

D.

from scipy.spatial.distance import cityblock
points_1 = (5, 5)
points_2 = (10, 10)
res = cityblock(points_1, points_2) ** 2
print(res)

正确答案: B

5. 第 5 题:余弦距离

知识点描述:余弦距离是两个向量间的夹角的余弦值。
问题描述:求给定点之间的余弦距离,请从以下选项中选出你认为正确的答案:
A.

from scipy.spatial.distance import euclidean
points_1 = (5, 5)
points_2 = (8, 10)
res = euclidean(points_1, points_2)
print(res)

B.

from scipy.spatial.distance import euclidean
points_1 = (5, 5)
points_2 = (8, 10)
res = 1 / euclidean(points_1, points_2)
print(res)

C.

from scipy.spatial.distance import cosine
points_1 = (5, 5)
points_2 = (8, 10)
res = 1 / cosine(points_1, points_2)
print(res)

D.

from scipy.spatial.distance import cosine
points_1 = (5, 5)
points_2 = (8, 10)
res = cosine(points_1, points_2)
print(res)

正确答案: D

6. 第 6 题:汉明距离

知识点描述:汉明距离是给定点对应位置中的不同位个数的比例。
问题描述:求给定点之间的汉明距离,请从以下选项中选出你认为正确的答案:
A.

from scipy.spatial.distance import hamming
points_1 = (1, 2, 3, 4, 5)
points_2 = (1, 3, 4, 4, 5)
res = 1 / hamming(points_1, points_2)
print(res)

B.

from scipy.spatial.distance import euclidean
points_1 = (1, 2, 3, 4, 5)
points_2 = (1, 3, 4, 4, 5)
res = 1 / euclidean(points_1, points_2)
print(res)

C.

from scipy.spatial.distance import hamming
points_1 = (1, 2, 3, 4, 5)
points_2 = (1, 3, 4, 4, 5)
res = hamming(points_1, points_2)
print(res)

D.

from scipy.spatial.distance import euclidean
points_1 = (1, 2, 3, 4, 5)
points_2 = (1, 3, 4, 4, 5)
res = euclidean(points_1, points_2)
print(res)

正确答案: C

试题代码地址

https://codechina.csdn.net/LOVEmy134611/python_problem

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 25
    评论
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盼小辉丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值