假设我有一个矩阵[[-2,4],[-6,8]]
。
我想知道如何得到这些数字的相反数:[[2,-4],[6,-8]]
.
我应该使用 Python 中的特殊功能吗?
numpy 很棒:P
a = numpy.array( [[-2,4],[-6,8]])
a *= -1
print a
使用列表推导是解决问题的一种方法:
>>> data = [[-2,4],[-6,8]]
>>> [[-ele for ele in item] for item in data]
[[2, -4], [6, -8]]
如果您不想导入包,并且列表解析也有问题,但您喜欢不必要的复杂事物,您可以使用map()
如下lambda
所示:
data = [[-2,4],[-6,8]]
reversed_data = map(lambda sublist: map(lambda x: -x, sublist), data)
# [[2, -4], [6, -8]]
编辑:这个例子在 python 2.7 中工作。在 python 3+map()
中返回一个迭代器,所以你需要做list(map())
才能得到这个结果。(归功于塞思莫顿)
import numpy
matrix = numpy.array([[-2,4],[-6,8]])
negatedMatrix = matrix * -1
print negatedMatrix
给出输出:
[[ 2 -4]
[ 6 -8]]