我不知道如何表达条件循环。我想创建一个NxN数组,由等于1或-1的元素组成。我首先创建了一个3x3数组,它在打印时由0到1之间的数字组成。你知道吗
col = 3
row = 3
mymatrix = np.random.rand(col,row)
我想将它们的值设置为1或-1,这取决于它们所分配的值是否大于或等于0.5。你知道吗
for i in range(0,2):
for j in range(0,2):
if mymatrix[i,j] <= 0.5:
mymatrix[i,j] = -1.0
elif mymatrix[i,j] >= 0.5:
mymatrix[i,j] = 1.0
print mymatrix
出于某种原因,这将打印一个3x3矩阵,其中只有内部4个元素为1或-1。你知道吗
[[-1, 1,0.19343979]
[ 1, -1, 0.59891168]
[ 0.02766664, 0.73244162, 0.41541223]]
我知道mymatrix[2,2]
是0.41541223,所以我不明白为什么没有循环通过。你知道吗
您的错误在上限:
你的问题
您需要遍历所有行和列:
您只需循环前两个:
在Python中,
range(start, end)
给出了一个范围,起始形式为start
包含和end
独占。你知道吗顺便说一句,在Python中,行是第一个维度,所以这样更好:
即使
row
和col
在您的案例中具有相同的值。你知道吗更好的解决方案
使用NumPy数组时,应该尽量避免循环, 因为循环真的很慢。根据我的经验,NumPy数组上的循环甚至比Python列表上的循环还要慢。 因此,最好:
这是一个矢量化的版本,速度更快。 使用NumPy的目标之一通常是速度。你知道吗
相关问题 更多 >
编程相关推荐