我有一個 for 回圈,但我有 2 的變化,我想在每次迭代中將一個值保存在一個 numpy 陣列中,該值變化為 1。
n = 8 #steps
# random sequence
rand_seq = np.zeros(n-1)
for i in range(0, (n-1)*2, 2):
curr_state= i 3
我想在 rand_seq 陣列(七個值)中的回圈外獲取 curr_state。
你能幫我解決這個問題嗎?
多謝
uj5u.com熱心網友回復:
一個更簡單的版本(如果我理解正確的話)是:
np.arange(3, 15 1, 2)
其中 3 = 開始,15 = 停止,2 = 步長。
通常,在使用 numpy 時盡量避免在 for 回圈中添加元素,因為這是低效的。我建議檢查出的檔案np.arange(),np.array()并np.zeros()在我的經驗,這將解決90%的陣列-創作問題。
uj5u.com熱心網友回復:
一個直接的串列迭代:
In [313]: alist = []
...: for i in range(0,(8-1)*2,2):
...: alist.append(i 3)
...:
In [314]: alist
Out[314]: [3, 5, 7, 9, 11, 13, 15]
或轉換為串列理解:
In [315]: [i 3 for i in range(0,(8-1)*2,2)]
Out[315]: [3, 5, 7, 9, 11, 13, 15]
或者,如果您創建一個具有相同范圍引數的陣列:
In [316]: arr = np.arange(0,(8-1)*2,2)
In [317]: arr
Out[317]: array([ 0, 2, 4, 6, 8, 10, 12])
您可以添加3一個簡單的運算式:
In [318]: arr 3
Out[318]: array([ 3, 5, 7, 9, 11, 13, 15])
有了串列,迭代和理解都很棒。Withnumpy您應該嘗試創建一個陣列,例如 with arange,并使用整個陣列方法(而不是迭代)修改它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/399166.html
