我想在兩個數字之間創建一個串列,例如:
import numpy as np
np.arange(0,100,10)
輸出:
array([ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90])
但我不想定義步長的大小,而是步數。如果我定義了 3 個步驟,那么我想得到這個串列:
array([ 0, 50, 100])
或 4 個步驟:
array([0, 33, 66, 100])
等等。
如果我必須設定 4(對于所有值)或 2(僅對于插值)來獲得最后一個輸出,或者我得到一個陣列或串列,這并不重要。此外,它如何圓/圓也無關緊要。創建這樣的串列只是合乎邏輯的。
uj5u.com熱心網友回復:
如評論中所述,numpy.linspace 在指定的時間間隔內回傳均勻分布的數字。
import numpy as np
n_steps = 3
np.linspace(start=0, stop=100, num=n_steps)
array([ 0., 50., 100.])
n_steps = 4
np.linspace(start=0, stop=100, num=n_steps)
array([ 0. , 33.33333333, 66.66666667, 100. ])
編輯
如果您正在尋找整數,則可以轉換為int資料型別:
import numpy as np
n_steps = 3
np.linspace(start=0, stop=100, num=n_steps, dtype=int)
array([ 0, 50, 100])
n_steps = 4
np.linspace(start=0, stop=100, num=n_steps, dtype=int)
array([ 0, 33, 66, 100])
uj5u.com熱心網友回復:
您可以繼續使用該np.arange功能。您只需要根據最大值和最小值以及步數計算步長:
import numpy as np
import math
nb_steps = 3
min_val = 0
max_val = 100
step_size = math.floor((max_val-min_val)/nb_steps)
arr = np.arange(min_val,max_val,step_size)
# update last value to match max_val
# this step is needed if (max_val-min_val)/nb_steps is a decimal number
arr[-1] = max_val
您還可以使用評論中指出的 numpy.linspace :
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
https://numpy.org/doc/stable/reference/generated/numpy.linspace.html
uj5u.com熱心網友回復:
我認為這樣的事情會很好
even_arange = lambda n: np.arange(0, 101, 100/(n-1)).astype("int64")
even_arange(n)
或者
from functools import partial
even_arnage = partial(start=0, stop=100, dtype="int64")
even_arange(num=n)
uj5u.com熱心網友回復:
對于純 python(沒有任何庫)。
def generate_range(start, end, steps):
return [start i*(end-start)/(steps-1) for i in range(steps)]
示例使用
generate_range(0, 100, 4)
# returns [0.0, 33.333333333333336, 66.66666666666667, 100.0]
generate_range(-200, 400, 5)
# returns [-200.0, -50.0, 100.0, 250.0, 400.0]
uj5u.com熱心網友回復:
def listWithNumberOfStep(startNumber, endNumber, nbSteps):
listNumber = []
delta = endNumber - startNumber
for i in range(nbSteps 1):
listNumber.append(startNumber (delta/nbSteps * i))
return listNumber
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/461744.html
上一篇:argmax相對于行的索引
