[問題] 利用迴圈方式,將每一筆資料存入陣列

看板Python作者 (草草)時間8年前 (2017/05/18 21:59), 8年前編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/2 (看更多)
各位大大好 小弟想問利用迴圈的方式,把運算的資料存入一個陣列,且陣列要numpy array的格式 範例如下 import numpy as np y=[] x=[3.5, 8.2, 5.4, 2.3, 4.7] for i in range(0,len(x)): y+=[3+2*x[i]] 但我的y是list,並不是我要的numpy array格式 後面在輸入以下這一行指令,終於變成我要的numpy array格式 y = np.reshape(y,(len(y),1)) 想請問有沒有其它方法,可以像Matlab語法一樣,只利用一行就可以解決的? Matlab範例如下 x=[3.5, 8.2, 5.4, 2.3, 4.7] for i=1:length(x) y(i,1)=3+2*x(i); end 以上是小弟的問題,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.172.136 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1495115986.A.715.html

05/18 22:10, , 1F
y = np.empty([len(x), 1])
05/18 22:10, 1F

05/18 22:11, , 2F
for loop 裡面 y[i] = np.array([3 + 2 * x[i]])
05/18 22:11, 2F

05/18 22:12, , 3F
啊 y[i, 0] = 3 + 2 * x[i] 比較符合你的 Matlab 版語意
05/18 22:12, 3F
謝謝ur大大!! ※ 編輯: popo14777 (1.34.172.136), 05/18/2017 22:48:48 ※ 編輯: popo14777 (1.34.172.136), 05/18/2017 22:49:05

05/19 01:55, , 4F
MATLAB寫成 y(:,1)=3+2*x' 就好了吧...
05/19 01:55, 4F

05/20 16:01, , 5F
直接把x作成array不就好了?
05/20 16:01, 5F
文章代碼(AID): #1P7QZISL (Python)
文章代碼(AID): #1P7QZISL (Python)