[英]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.