我有两个清单:
list_1 = sorted(random.sample(xrange(1, 101), 10))
print list_1
list_2 = sorted(random.sample(xrange(1, 101), 10))
print list_2
注意:在我的实际项目中,其中一个列表是根据用户输入构建的。
然后我想将这些转换为矩阵并做一些简单的数学运算。例如,也许将一个矩阵从1x10反转到10x1,这样我就可以将它们相乘,或类似的东西。
我该怎么做?我已经读过像NumPy和SciPy这样的软件包,但我对Python很新,不知道如何安装它们,或者我甚至需要它们提供的功能。我很感激任何建议。
答案 0 :(得分:1)
以下是inner products和outer products的基本示例:
import random
import numpy
list_1 = sorted(random.sample(xrange(1, 101), 10))
list_2 = sorted(random.sample(xrange(1, 101), 10))
A = numpy.array(list_1).reshape(1,10)
B = numpy.array(list_2).reshape(10,1)
# Inner product
print A.dot(B)
# Outer product
print A.T.dot(B.T)
输出如:
[[22846]]
[[ 5 21 26 33 41 42 43 74 78 81]
[ 15 63 78 99 123 126 129 222 234 243]
[ 105 441 546 693 861 882 903 1554 1638 1701]
[ 110 462 572 726 902 924 946 1628 1716 1782]
[ 135 567 702 891 1107 1134 1161 1998 2106 2187]
[ 165 693 858 1089 1353 1386 1419 2442 2574 2673]
[ 190 798 988 1254 1558 1596 1634 2812 2964 3078]
[ 270 1134 1404 1782 2214 2268 2322 3996 4212 4374]
[ 375 1575 1950 2475 3075 3150 3225 5550 5850 6075]
[ 465 1953 2418 3069 3813 3906 3999 6882 7254 7533]]
请注意,我使用.dot
进行矩阵乘法运算。如果你没有得到成对的操作:
# Matrix multiply
C = numpy.array([[1,2],[3,4]])
print C.dot(C)
# Pairwise operation
print C*C
结果:
[[ 7 10]
[15 22]]
[[ 1 4]
[ 9 16]]