参考博客:http://blog.csdn.net/taoyanqi8932/article/details/52703686
在矩阵和数据中取行列值时,是不一样的表达形式,如下:
#1.矩阵和数组索引
from numpy import *
from numpy import linalg
#矩阵
matA = mat([[1, 0]])
matB = mat([[1,3,6], [0, 2,7]])
print matA
print matB
print matB[1] #取第几行
print matB[0,1] #取第0行第1列
print type(matB) #查看数据类型
#结果
[[1 0]]
[[1 3 6]
[0 2 7]]
[[0 2 7]]
3
<class 'numpy.matrixlib.defmatrix.matrix'>
#数组
arryA=array([1,2,3])
arryB=array([[1,2,3],[0,2,7]])
print arryA
print arryB
print arryB[1] #取第一行
print arryB[0][1] #取第0行第1列
print type(arryB)
#结果
[1 2 3]
[[1 2 3]
[0 2 7]]
[0 2 7]
2
<type 'numpy.ndarray'>
结论:虽然多维数组和多维矩阵输出格式是一样的,但是取值形式是不同的。要特别注意
Numpy有许多的创建数组的函数:
import numpy as np
a = np.zeros((3,3)) # Create an array of all zeros
a1=np.zeros([3,3])
print a
b = np.ones((1,2))
b1 = np.ones([1,2])
print b
c = np.full((2,2), 7)
print c
d = np.eye(2)
print d
e = np.random.random((2,2))
print e
#2.矩阵和数组基本运算
from numpy import *
a1=array([1,2,3])
a2=array([4,5,6])
print a1*a2
#结果
[ 4 10 18]
多维数组相乘
a1=array([[1,2,3]])
a2=array([[4,5,6]])
print(a1*a2)
print(a1*a2.T)
#结果
[[ 4 10 18]]
[[ 4 8 12]
[ 5 10 15]
[ 6 12 18]]
m1=mat([1,2,3]) #1行3列
m2=mat([4,5,6])
print m1*m2.T
# 执行点乘操作,要使用函数,特别注意
print multiply(m1,m2)
#结果分别为:
[[32]]
[[ 4 10 18]]