マトリックスがあるとしましょう[[-2,4],[-6,8]]
。
これらの数字の反対を取得する方法を知りたい: [[2,-4],[6,-8]]
.
使用することになっている Python の特別な関数はありますか?
numpyは素晴らしいです:P
a = numpy.array( [[-2,4],[-6,8]])
a *= -1
print a
リスト内包表記を使用することは、それを行う 1 つの方法です。
>>> data = [[-2,4],[-6,8]]
>>> [[-ele for ele in item] for item in data]
[[2, -4], [6, -8]]
import numpy
matrix = numpy.array([[-2,4],[-6,8]])
negatedMatrix = matrix * -1
print negatedMatrix
出力を与える:
[[ 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())
(クレジットはSethMMortonに送られます)