Python 如何将第一列设置为空np.zeros numPy矩阵的常量值?
我正在为地下水位模型设置一些边界条件,我可以将整个第一行设置为常量,但不能将整个第一列设置为常量。我使用Python 如何将第一列设置为空np.zeros numPy矩阵的常量值?,python,numpy,matrix,modeling,Python,Numpy,Matrix,Modeling,我正在为地下水位模型设置一些边界条件,我可以将整个第一行设置为常量,但不能将整个第一列设置为常量。我使用np.zeros((111001))来生成一个空矩阵。有人知道为什么我能成功地定义第一行,而不是第一列吗?我已经注意到下面这句话 import numpy as np x = range(0, 110, 10) time = range(0, 5005, 5) xSize = len(x) timeSize = len(time) dx = 10 dt = 5 Sy = 0.1 k = 0
np.zeros((111001))
来生成一个空矩阵。有人知道为什么我能成功地定义第一行,而不是第一列吗?我已经注意到下面这句话
import numpy as np
x = range(0, 110, 10)
time = range(0, 5005, 5)
xSize = len(x)
timeSize = len(time)
dx = 10
dt = 5
Sy = 0.1
k = 0.002
head = np.zeros((11, 1001))
head[0:][0] = 16 # sets the first row to 16
head[0][0:] = 16 # DOESN'T set the first column to 16
for t in time:
for i in x[1:len(x)-1]:
head[t+1][i] = head[t][i] + ((dt*k)/(2*Sy)) * (((head[t][i-1]**2) - (2*head[t][i]**2) + (head[t][i+1]**2)) / (dx**2))
您可以使用类似的语法
In [12]: head = np.zeros((11,101))
In [13]: head
Out[13]:
array([[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]])
In [14]: head[:,0] = 42.0
In [15]: head
Out[15]:
array([[ 42., 0., 0., ..., 0., 0., 0.],
[ 42., 0., 0., ..., 0., 0., 0.],
[ 42., 0., 0., ..., 0., 0., 0.],
...,
[ 42., 0., 0., ..., 0., 0., 0.],
[ 42., 0., 0., ..., 0., 0., 0.],
[ 42., 0., 0., ..., 0., 0., 0.]])
你所要做的就是改变
head[0][0:]
到
如果要更改第一行,只需执行以下操作:
head[0, :] = 16
编辑:
以防万一,您还想知道如何更改任意行/列中任意数量的值:
myArray = np.zeros((6, 6))
现在,我们在第2行将3个值设置为16:
myArray[2, 1:4] = 16.
array([[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 16., 16., 16., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.]])
柱的工作原理相同:
myArray[2:5, 4] = -4.
array([[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 16., 16., 16., -4., 0.],
[ 0., 0., 0., 0., -4., 0.],
[ 0., 0., 0., 0., -4., 0.],
[ 0., 0., 0., 0., 0., 0.]])
如果您还想同时更改两行中的某些值,例如,您可以这样做:
myArray[[0, 5], 0:3] = 10.
array([[ 10., 10., 10., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 16., 16., 16., -4., 0.],
[ 0., 0., 0., 0., -4., 0.],
[ 0., 0., 0., 0., -4., 0.],
[ 10., 10., 10., 0., 0., 0.]])
@尼蒂什谢谢你们!
myArray[[0, 5], 0:3] = 10.
array([[ 10., 10., 10., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 16., 16., 16., -4., 0.],
[ 0., 0., 0., 0., -4., 0.],
[ 0., 0., 0., 0., -4., 0.],
[ 10., 10., 10., 0., 0., 0.]])