numpy的array和matrix

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的矩阵相乘也需要遵守对齐规则,这一点不要忘记。如果是要实现矩阵对应元素相乘就应该使用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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值