为什么这段python代码只产生最后的结果
我想计算满足条件的矩阵:为什么这段python代码只产生最后的结果,python,reverse,Python,Reverse,我想计算满足条件的矩阵: 结果_x=1-初始_x result\u y=初始值 results\u z=initial\u y 但是,我的代码只生成每个数组的最后一个。你能帮我一下吗 import numpy as np import math def reverse_a_direction(matrix): reverse_a = [] for (x, y, z) in matrix: reverse_a = 1 - x, y, z return re
结果_x=1-初始_x
result\u y=初始值
results\u z=initial\u y
但是,我的代码只生成每个数组的最后一个。你能帮我一下吗
import numpy as np
import math
def reverse_a_direction(matrix):
reverse_a = []
for (x, y, z) in matrix:
reverse_a = 1 - x, y, z
return reverse_a
a = np.array([[(0.1666666666666667, 0.8012144614989793, 0.7500000000000000),
(0.1666666666666667, 0.1987855385010207, 0.2500000000000000)],
[(0.6666666666666666, 0.3012144614989793, 0.7500000000000000),
(0.6666666666666666, 0.6987855385010207, 0.2500000000000000)]])
for i in range(0, len(a)):
print(reverse_a_direction(a[i]))
此代码的结果:
(0.8333333333333333, 0.1987855385010207, 0.25)
(0.3333333333333333, 0.6987855385010207, 0.25)
预期成果:
[(0.8333333333333333, 0.8012144614989793, 0.75), (0.8333333333333333, 0.1987855385010207, 0.25)],
[(0.3333333333333333, 0.3012144614989793, 0.75), (0.3333333333333333, 0.6987855385010207, 0.25)]
每次迭代都会覆盖反向_a。正确的解决办法是:
def reverse_a_direction(matrix):
reverse_a = []
for (x, y, z) in matrix:
a = 1 - x, y, z
reverse_a.append(a)
return reverse_a
每次迭代都会覆盖反向_a。正确的解决办法是:
def reverse_a_direction(matrix):
reverse_a = []
for (x, y, z) in matrix:
a = 1 - x, y, z
reverse_a.append(a)
return reverse_a
反转逻辑不会捕获结果,但会覆盖,因此最后一个结果会保存在reverse\u a[]
变量中
将您的作业从
reverse_a = 1 - x, y, z
到
反转逻辑不会捕获结果,但会覆盖,因此最后一个结果会保存在reverse\u a[]
变量中
将您的作业从
reverse_a = 1 - x, y, z
到
给定原始阵列:
X = np.array([
[
[0.1666666666666667, 0.8012144614989793, 0.7500000000000000],
[0.1666666666666667, 0.1987855385010207, 0.2500000000000000]
],
[
[0.6666666666666666, 0.3012144614989793, 0.7500000000000000],
[0.6666666666666666, 0.6987855385010207, 0.2500000000000000]
]
])
可以按如下方式修改该轴:
Y = np.array(X)
Y[:,:,0] = 1 - Y[:,:,0]
给定原始阵列:
X = np.array([
[
[0.1666666666666667, 0.8012144614989793, 0.7500000000000000],
[0.1666666666666667, 0.1987855385010207, 0.2500000000000000]
],
[
[0.6666666666666666, 0.3012144614989793, 0.7500000000000000],
[0.6666666666666666, 0.6987855385010207, 0.2500000000000000]
]
])
可以按如下方式修改该轴:
Y = np.array(X)
Y[:,:,0] = 1 - Y[:,:,0]
你只会得到最后一个结果,你会覆盖内存。你只会得到最后一个结果,你会覆盖内存。