[英]2D array with numpy
我編寫了以下代碼來創建2D數組並歸檔每行的第一個元素。 我是numpy的新手。 有一個更好的方法嗎?
y=np.zeros(N*T1).reshape(N,T1)
x = np.linspace(0,L,num = N)
for k in range(0,N):
y[k][0] = np.sin(PI*x[k]/L)
是的,由於numpy
操作進行向量化,因此您可以執行以下操作:
y[:,0] = np.sin(np.pi * x / L)
需要注意的是y[:,0]
抓住的第一列y
(的:
在第一坐標基本上是指“搶所有行”,“在索引0處從塔”,並且在第二坐標裝置0(即,第一列))。 由於np.sin(np.pi * x / L)
也是一個數組,因此可以將后者直接分配給前者。
這個問題是針對codereview @ stackexchange的,但是此片段有效!
import numpy as np
N = 1000 # arbitrary
T1 = 1000 # arbitrary
L = 10 # arbitrary
x = np.linspace(0,L,num = N)
# you don't need reshape here, give the size as a tuple!
y = np.zeros((N,T1))
# use a vectorized call here:
y[:,0] = np.sin(np.pi*x/L)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.