int.a的python学习笔记_人工智能numpy102

1、矩阵数据类型转换

import numpy as np

b5 = numpy.array(['1','2','3'])
b5 = b5.astype(float)             # 把str类型转换为float类型

2、矩阵取值操作

import numpy as np

b5 = numpy.array([1,2,3,4])
print(b5.min())                   # 获取b5中的最小值

print(np.arange(15))              # 产生一个0到14的数组,np是取的numpy别名
b6 = np.arange(15).reshape(3,5)   # 将一维数组分割成三行五列的2维数组。reshape(3,-1),-1的意思是自动计算多少列

print(b6)
print(b6.dtype.name)               # 打印b6的类型
print(b6.ndim)                     # 打印b6的维度
print(b6.size)                     # 打印b6里元素的个数

b7 = np.zeros((2,3,4),dtype=np.int32)  # 初始化一个值为0的三维int32类型矩阵,zeros改成ones就是值为1的,后面如果没有dtype=np.int32,默认是flaot类型的
b8 = np.arange(10,30,5)                # 产生从10开始,30结束,每5个值一加的数组
b9 = np.random.random((2,3))           # 产生一个2行3列的随机值矩阵
b10 = np.linspace(0,20,10)             # 在0到20之间平均产生10个值

3、矩阵的计算、拆分、拼接

import numpy as np

#矩阵的计算
c1= np.arange(4)
c1= c1-1
c11 = c1**2
print(c11)
print(c11<1)

c2=np.array([[1,2],
             [3,4]])
c3=np.array([[10,20],
             [30,40]])
print(c2*c3)       # 里面的值一一对应相乘

print(c2.dot(c3))  # 另一种写法numpy.dot(c2,c3)
                   # 数学里的矩阵相乘:一个行乘以一个列 1*10+2*30  1*20+2*40
                   #                                  3*10+4*30  3*20+4*40
print(np.exp([1,2]))
                   # exp:高等数学里以自然常数e为底的指数函数
                   # numpy.exp():返回e的幂次方,e是一个常数为2.71828
print(np.sqrt([1,2,3]))
                   # sqrt:开根号
print(np.floor(10*np.random.random((3,4))))
                   # floor 向下取整

print(c3.ravel())  # ravel()把矩阵变成向量
print(c3.T)  # 行列转置

print(np.hstack((c2,c3)))  # hstack横向拼接矩阵,vstack纵向拼接
print(np.hsplit(c2,2))     # hsplit横向拆分矩阵,vsplit纵向拆分
print(np.hsplit(c2,(1,2))) # 把第二个数到第三个数之间横向切

4、矩阵的深浅拷贝

python中变量和值存在不同的空间里,由变量的内存地址指向的 内存地址

代码解释
a=ba、b 指向 同一内存地址、同一‘值’内存地址
c= a.view()浅拷贝,a、c 不在同一内存空间 、但是同一‘值’内存地址
d= a.copy()深拷贝,a、d 不在同一内存空间、不同‘值’内存地址
import numpy as np

aa = np.arange(12)
print('没有赋值的时候',aa,id(aa))

bb = aa 
bb.shape =  2,6     #把bb变成2行6列的矩阵,aa里的值也跟着变了

print('1、bb改变时',aa,id(aa))
print(bb,id(bb))

cc = aa.view()
cc.shape = 3,4   #把cc变成3行4列的矩阵,aa没有变成3行4列的矩阵
cc[0,2] = 123    #给cc里该值的时候,对应aa里也改变了
print('2、cc改变时:',aa,id(aa))
print(cc,id(cc))

dd = aa.copy()
dd.shape = 4,3

print('3、dd改变时:',aa,id(aa))
print(dd,id(dd))

5、矩阵索引、扩展、排序

np.sin(a)

np.sin(a)对矩阵a中每个元素取正弦

argmax

argmax返回的是最大数的索引.argmax有一个参数axis,默认是0,表示第几维的最大值

np.tile()

np.tile(c5,(2,3)) # 行2倍扩展,列3倍扩展

np.sort()

np.sort(c6,axis=1) #按照从小到大排序

import numpy as np

# np.sin(a) 对矩阵a中每个元素取正弦
# argmax返回的是最大数的索引.argmax有一个参数axis,默认是0,表示第几维的最大值

c4=np.sin(np.arange(20)).reshape(5,4)
print(c4)

c4_1=c4.argmax(axis=0)       #比较c4[0][i]、c4[1][i]、c4[2][i]、c4[3][i]大小,然后取索引
print(c4_1)

c4_2 = c4[c4_1,range(c4.shape[1])]
# print(c4.shape[1])         # c4为4列
# print(range(c4.shape[1]))  # range(4),产生0、1、2、3
print(c4_2)
print(c4[[1,2,3,0],[0,1,2,3]]) # [c4[1,0] c4[2,1] c4[3,2] c4[0,3]]

# 矩阵扩展
c5=[0,1,2,3]
c5_1=np.tile(c5,(2,3))  # 行2倍扩展,列3倍扩展
print(c5_1)

# 矩阵排序
c6=([4,3,5],[1,2,1])
c6_1=np.sort(c6,axis=1)  #按照从小到大排序
c6_2=np.argsort(c6)      #从小到大取索引
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值