1

假设我有一个矩阵[[-2,4],[-6,8]]

我想知道如何得到这些数字的相反数:[[2,-4],[6,-8]].

我应该使用 Python 中的特殊功能吗?

4

4 回答 4

3

numpy 很棒:P

a = numpy.array( [[-2,4],[-6,8]])
a *= -1
print a
于 2014-04-04T19:16:25.990 回答
1

使用列表推导是解决问题的一种方法:

>>> data = [[-2,4],[-6,8]]
>>> [[-ele for ele in item] for item in data]
[[2, -4], [6, -8]]
于 2014-04-04T19:15:42.390 回答
0

如果您不想导入包,并且列表解析也有问题,但您喜欢不必要的复杂事物,您可以使用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())才能得到这个结果。(归功于塞思莫顿)

于 2014-04-04T19:43:25.633 回答
0
import numpy

matrix = numpy.array([[-2,4],[-6,8]])
negatedMatrix = matrix * -1

print negatedMatrix

给出输出:

[[ 2 -4]
 [ 6 -8]]
于 2014-04-04T19:24:11.413 回答