gpt4 book ai didi

python - 将 arange 应用于数组

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:40 24 4
gpt4 key购买 nike

np.arange 接受三个参数:开始、停止和步骤。

我想要的步长是-0.3048。我还有单独的数组用于启动和停止。

首先,我有一个完整的元素数组:

array([5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 4.377, 5.000,
5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 3.462, 3.285,
5.000, 5.000, 4.150, 5.000, 5.000, 5.000, 5.000, 5.000, 4.118, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 3.674, 5.000, 5.000, 5.000, 5.000,
5.000, 5.000, 4.655, 5.000, 5.000, 5.000, 4.573, 5.000, 5.000, 4.775, 4.909, 5.000, 5.000, 5.000, 3.874, 5.000, 5.000, 3.197, 5.000, 5.000,
5.000, 5.000, 5.000, 4.829, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 4.372, 4.175, 5.000, 5.000, 5.000, 5.000,
5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 4.793, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 4.993, 5.000, 5.000, 5.000, 5.000, 5.000,
5.000, 4.898, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 4.294, 5.000])

以下是相应的停止值:

array([1.927, -0.018, 0.214, 4.390, 0.162, 3.790, 4.891, -0.011, 4.623, 1.203, 4.270, 3.239, 4.569, 0.001, 3.942, 4.363, 3.135, 4.390, 3.176, 4.390,
3.958, 3.992, 0.595, 4.458, 4.897, -0.009, -0.004, 0.004, 0.010, 4.987, 4.454, 3.167, 3.791, 4.213, 3.100, 4.312, 4.166, 3.942, 1.984, 2.077,
4.810, 0.737, 0.490, 3.167, -0.010, 0.214, 4.313, 3.607, 2.509, 2.801, 3.034, 3.257, 0.013, 4.398, 0.013, 2.509, 4.157, 4.365, 4.902, 2.109,
4.390, 3.176, 3.034, 4.096, 0.168, 3.205, 3.176, 1.927, 4.352, 2.509, 2.848, 4.749, 4.217, 3.017, 2.509, 4.204, 0.268, 1.662, 4.124, 0.136,
2.509, 1.623, 4.791, 0.028, 2.969, 4.770, 4.799, 3.167, 2.970, 4.301, 0.883, 4.314, 0.182, -0.051, 2.493, 2.509, 4.131, 4.001, 4.952, 4.209,
4.363, 4.632, 4.390, 3.172, 3.470, 0.174, 4.804, 2.247, 2.751, 4.352, 4.110, 2.969, 4.914, 2.142, 2.120, 4.936, 3.780, 3.942, 1.042, 4.229,
2.267, 1.927, 1.213, 2.509, 4.464, 4.464, 0.595, 4.442, 2.751, 2.509, 3.339])

我需要对每个元素应用范围。

最快的方法是什么?我知道我可以使用 for 循环,但我希望有一个 numpy 原生解决方案(即矢量化)。

谢谢。如果有任何不清楚的地方,请告诉我。

最佳答案

如果您想动态创建它们,可以使用 for 循环:

starts = np.array([5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 4.377, 5.000,
5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 3.462, 3.285,
5.000, 5.000, 4.150, 5.000, 5.000, 5.000, 5.000, 5.000, 4.118, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 3.674, 5.000, 5.000, 5.000, 5.000,
5.000, 5.000, 4.655, 5.000, 5.000, 5.000, 4.573, 5.000, 5.000, 4.775, 4.909, 5.000, 5.000, 5.000, 3.874, 5.000, 5.000, 3.197, 5.000, 5.000,
5.000, 5.000, 5.000, 4.829, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 4.372, 4.175, 5.000, 5.000, 5.000, 5.000,
5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 4.793, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 4.993, 5.000, 5.000, 5.000, 5.000, 5.000,
5.000, 4.898, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 5.000, 4.294, 5.000])

stops = np.array([1.927, -0.018, 0.214, 4.390, 0.162, 3.790, 4.891, -0.011, 4.623, 1.203, 4.270, 3.239, 4.569, 0.001, 3.942, 4.363, 3.135, 4.390, 3.176, 4.390,
3.958, 3.992, 0.595, 4.458, 4.897, -0.009, -0.004, 0.004, 0.010, 4.987, 4.454, 3.167, 3.791, 4.213, 3.100, 4.312, 4.166, 3.942, 1.984, 2.077,
4.810, 0.737, 0.490, 3.167, -0.010, 0.214, 4.313, 3.607, 2.509, 2.801, 3.034, 3.257, 0.013, 4.398, 0.013, 2.509, 4.157, 4.365, 4.902, 2.109,
4.390, 3.176, 3.034, 4.096, 0.168, 3.205, 3.176, 1.927, 4.352, 2.509, 2.848, 4.749, 4.217, 3.017, 2.509, 4.204, 0.268, 1.662, 4.124, 0.136,
2.509, 1.623, 4.791, 0.028, 2.969, 4.770, 4.799, 3.167, 2.970, 4.301, 0.883, 4.314, 0.182, -0.051, 2.493, 2.509, 4.131, 4.001, 4.952, 4.209,
4.363, 4.632, 4.390, 3.172, 3.470, 0.174, 4.804, 2.247, 2.751, 4.352, 4.110, 2.969, 4.914, 2.142, 2.120, 4.936, 3.780, 3.942, 1.042, 4.229,
2.267, 1.927, 1.213, 2.509, 4.464, 4.464, 0.595, 4.442, 2.751, 2.509, 3.339])

step = -0.3048
if len(starts)!=len(stops):
raise IndexError("Shape of starts does not match shape of stops")

for i in range(len(starts)):
myrange = np.arange(starts[i], stops[i], step)
# do things

变得更有趣:

pairs = list(zip(starts, stops))

for start, stop in pairs:
myrange = np.arange(start, stop, step)

我确信有一个更好的 numpy 原生实现,但这可以让您起步

关于python - 将 arange 应用于数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53310573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com