您的位置:首页 > 编程语言 > Python开发

numpy的array和matrix

2017-07-29 16:24 429 查看

preface

先说一下导包的差别导致的调用的差别。

如果使用:import numpy as np

那么就只能用np.函数的形式来调用numpy中的函数;

import numpy as np
#生成一个array
#正确调用
#以下语句可以生成指定类型的array
#n = np.array([1,2,3],dtype=类型)
#生成float32类型的array
#n = np.array([1,2,3],dtype=‘float32’)
#n.dtype
n = np.array([1,2,3])
#错误使用
n1 = array([1,2,3])


但是如果from numpy import *就可以直接使用函数名来调用函数。

from numpy import *
#生成一个array
#正确调用
n = array([1,2,3])
#错误调用 这个应该很好理解,毕竟没有np这个变量
n1 = np.array([1,2,3])


Numpy

NumPy数组是一个多维数组对象,称为ndarray。关于NumPy数组它有两个特性:

(1)NumPy数组的下标从0开始。

(2)同一个NumPy数组中所有元素的类型必须是相同的。

array

关于array的操作,首先需要说明的是由于它存在在外部包,所以还要先导入numpy,详情见程序。需要说明的是两个array的‘*’并不是代表矩阵相乘,而是矩阵内对应元素相乘,要想实现矩阵乘法需要使用dot函数。当然要想实现矩阵的乘法还需要遵守矩阵乘法的规则,即对齐,如dot(m,n)m的列数要等于n的行数才行。另外array的size属性,返回的是array元素的个数,而ndim的属性返回的是array的维度,dtype属性返回的是存储元素的类型。而如果需要转置array可以使用 a.T来实现。对于数组中的元素是通过下标来访问的,可以通过方括号括起一个下标来访问数组中单一的一个元素,也可以以切片的形式访问数组中多个元素。

#定义一个array

#方法1
from numpy import *
nar_2 = array([1,2])

#方法2
#导入包
#import numpy as np
#nar = np.array([1,2])

prod = nar*nar
#要想使用dot必须用方法2的导包
prod_1 = dot(nar,nar)
#获取nar元素的个数
nar.size
#获取nar的维度
nar.ndim
nar_tran = nar.T
#访问数组元素
print(nar[0])
print(nar[:2])


matrix

在numpy中的特殊类型,是array的子类,有自己独特的地方。在matrix中‘*’和函数dot都表示矩阵的相乘,同样对于matrix的矩阵相乘也需要遵
4000
守对齐规则,这一点不要忘记。如果是要实现矩阵对应元素相乘就应该使用multiply函数,而对于两个matrix的除,‘/’则表示对应元素的相除。matrix同样也有size,ndim,dtype的属性,与array所述一样。

from numpy import *
#定义一个matrix
nmat = mat([[1,2],[3,4]])

n2 = mat([[1,2,3],[2,3,4]])
#这样会报错,未对齐时
result = dot(nmat,n2)
#矩阵的乘法
m_pro = nmat *nmat
pro_d = dot(nmat,nmat)

#矩阵对应元素相乘
pro_m = multiply(m,m)


matrix与array互相转化

from numpy import *
n = array([1,2,3,4])
type(n)
# 把 array转为matrix
n_m = asmatrix(n)

# 把matrix转为array
m = mat([[1,2],[2,3]])
type(m)
m_a = m.getA1()
type(m_a)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: