给定一个包含8个x,y坐标值(全部为正)的4个点的列表[x1, x2, x3, x4, y1, y2, y3, y4]((xi, yi)是第i个点的x和y坐标),
我如何对它进行排序,使得新列表[a1, a2, a3, a4, b1, b2, b3, b4]是(ai, bi)1 2 3 4的坐标顺时针顺序,其中1最接近xy平面的原点,即类似
2--------3
| |
| |
| |
1--------4
Run Code Online (Sandbox Code Playgroud)
点将粗略地形成平行四边形.
目前,我正在考虑找到最小值为(x + y)为1的点,然后用剩余坐标中x最小的点为2,用(x + y)的最大值为3,剩余点为4
我正在尝试使用该librosa库通过以下 Python 代码对 mp3 文件进行采样(将模拟转换为数字),但这需要太多时间(一个文件大约需要 4 秒)。我怀疑这是因为librosa不支持mp3,因此使用较慢audioread的采样mp3
代码:
import time
import librosa
s = time.time()
for i in mp3_list[:10]: # list of mp3 file paths, doing for 10 files
y, sr = librosa.load(i)
print('time taken =', time.time() - s)
Run Code Online (Sandbox Code Playgroud)
time taken = 36.55561399459839
我也收到此警告:
UserWarning: "PySoundFile failed. Trying audioread instead."
Run Code Online (Sandbox Code Playgroud)
显然,这对于任何实际应用来说都太长了。我想知道是否有更好的替代方案?
为了进行比较,1.2对 10 个相同大小的wav转换进行采样只需要大约几秒钟的总时间
我很困惑是否
int arr[n]={0}需要恒定的时间,即 O(1) 还是 O(n)?