numpy快速入门笔记

"""
numpy笔记:

"""
import  numpy as np
# a = np.array([[1,2,3],[2,3,4]])
# print(a.ndim)#维度
# print(a.shape)#具体维度
# print(a.size)#元素个数
# print(a.dtype)#查看元素类型
#
# a = np.array([1,2,3])#使用列表形式创建numpy array数组
# print(a,a.dtype)
#
# b = np.array([1,2,3],dtype=np.float32)#指定初始类型
# print(b)
# c = np.zeros([3,3],dtype=np.int32)#创建并且初始化0
# print(c)
#
# c1 = np.ones([3,3],dtype=np.int32)#创建并且初始化1
# print(c1)
#
# c2 = np.full([3,3],5,dtype=np.int32)#创建并且初始化为 任意值
# print(c2)
#
# d = np.eye(5)#创建对角矩阵
# print(d)
#
# e = np.arange(1,20,2).reshape(2,5)#将一个长度为10的一维数组变形为二维数组
# print(e)
#
#
# f = np.linspace(0,10,5)#生成一个等差数列
# print(f)
#
# g = np.random.random()
# print(g)
#
# g1 = np.random.rand()
# print(g1)
#
# g2 = np.random.random(5)#产生5个0到1 的随机数
# print(g2)
#
# g3 = np.random.rand(5)#产生5个0到1 的随机数
# print(g3)
#
# g4 = np.random.random((2,3))#产生一个多维数组
# print(g4)
#
#
# g5 = np.random.rand(2,3)#产生一个多维数组,注意和g4的不同
# print(g5)
#
#
# g6 = np.random.randint(5,10,(2,2))#范围内。(x) -> [0,x)  (x,y)->[x,y)   (x,y,())->[x,y)和维度
# print(g6)
#
# g7 = np.random.normal()#从标准正态分布中取值
# print(g7)
#
#
# #打乱顺序
# h = np.arange(9)
# print(h)
# np.random.shuffle(h)#打乱数据
# print(h)


# python数组的加减乘除比较大小,上是数组元素的加减乘除比较大小。矩阵运算可以使用numpy。
# import numpy as np
# a = np.array([[1,2,3],[4,5,6]])
# b = np.arange(6).reshape(3,2)
# #矩阵运算
# print(a@b)#2*3的矩阵和3*2的矩阵进行矩阵相乘,然后得到2*2的矩阵
# print(a.dot(b))#相当于a@b
# #广播机制:Numpy 可以转换这些形状不同的数组,使它们都具有相同的大小,然后再对它们进行运算。
# #广播的规则:规则 1:如果两个数组的维度数不相同,那么小维度数组的形状将会在最左边补 1。规则 2:如果两个数组的形状在任何一个维度上都不匹配,那么数组的形状会沿着维度 为 1 的维度扩展以匹配另外一个数组的形状。规则 3:如果两个数组的形状在任何一个维度上都不匹配并且没有任何一个维度等于 1, 那么会引发异常。
# #广播运算大概的机制就是,如果两个矩阵形状不同,运算的话,numpy会根据一定的规则来进行改变,使它可以运算
#
#
# #通用函数
# a = np.arange(9).reshape(3,3)
# print(a)
#
#
# print('和',np.sum(a))#所有元素的和
# print('乘积',np.prod(a))
# print('min',np.min(a))
# print('max',np.max(a))
# print('最小值序号',np.argmin(a))
# print('最大值序号',np.argmax(a))
# print('均值',np.mean(a))
# print('方差',np.var(a))
# print('标准差',np.std(a))
# print('中位数',np.median(a))
# #另外通过可axis求某一行某一列的某个值,不列举,用的时候百度就行
#



#复制
import numpy as np
import copy

a = [1,2,3]
b = a
print(a is b)#这是一个浅拷贝,就是,只复制指针不复制内容

b = copy.copy(a)
print(a is b)#深拷贝

#copy 的局限性
a = [1,[2,3]]
b = copy.copy(a)
a[1][0]=100
print(b)#列表元素属于浅拷贝

b = copy.deepcopy(a)
a[1][0]=99
print(b)#列表元素属于深拷贝

a = np.array([1,2,3])
b = np.copy(a)#numpy 中的复制
print(b is a)



#索引
a = np.arange(12).reshape(3,4)
print(a[0])#输出某一行
print(a[0][1])#输出某个元素

for i in a:
    print(i)#输出的是行

for j in a.T:
    print(j)#通过转置,使其输出的是列

for k in a.flatten():#flatten不管什么维度的张量,都会被拍成一维
    print(k)

#合并
a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.hstack((a,b))#张量横拼
print(c)
d = np.vstack((a,b))#张量竖拼
print(d)


#分割
a = np.vstack((a,b)) #2*3的张量
print(np.split(a,3,axis=1))#竖直分割成三分
print(np.split(a,2,axis=0))#水平分割成两份


#切片
a = np.array([1,2,3,4,5,6])
print(a[1:5])#左闭右开区间
print(a[1:5:2])#步长为2

a = np.array([[1,2,3],[4,5,6]])
print(a[:,:2])#第一维全取,第二维取0-1

a = np.arange(100*28*28*3).reshape((100,28,28,3))
print(a[0,...])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值