numpy入门使用

import numpy as np
a = np.array([[1,2,3],
                  [4,5,6]]) #使用numpy把列表转换成矩阵,可以利用numpy加速计算
print(a)
print('number of dim:',a.ndim) #几维
print('shape:',a.shape) #几行几列
print('size:',a.size) #多少个元素
a = np.array([1,2,3],dtype=np.int) #定义数据存储的类型
print(a.dtype)
print(a)
a = np.zeros((3,4),dtype = np.int)#打印3行4列的全为0的矩阵
print(a)
a = np.ones((3,4),dtype=np.int)#3行4列全为1的矩阵
print(a)
a = np.arange(1,25,2).reshape((3,4))#reshape().用1到25步长为2的顺序数,生成3行4列的矩阵,共12个元素
a = np.linspace(1,10,6).reshape((2,3))#1-10分成6段共6个数.用reshape()搞成矩阵.
a = np.array([1,2,3,4]).reshape((2,2))
b = np.arange(1,5).reshape((2,2))
c = np.dot(a,b)#dot()为矩阵运算
print(c)
print(a.dot(b)) #a,b的矩阵运算也可以写作a.dot(b)
c = a*b  #a*b只是对应数直接相乘,与上面结果不同。
c = 10*np.sin(a)#a中的每个元素取完sin后再乘以10
a = np.random.random((3,4))#两个random随机生成一个3*4的矩阵,0-1
a = np.arange(1,5).reshape((2,2))
np.sum(a) #对整个矩阵a的所有元素求和
print(np.sum(a,axis=0))#sxis=0表示竖直相加
print(np.sum(a,axis=1))#sxis=1表示水平相加

在这里插入图片描述

print(np.min(a))
np.max(a)
a = np.arange(2,14).reshape(3,4)
np.argmin(a)#最小值的索引
np.argmax(a)
np.mean(a)#计算平均值,或者a.mean()也可以。
np.median(a)#中位数
np.cumsum(a)#累加
np.diff(a)#相邻两项求差
np.transpose(a)#求转置
print(a.T) #也是求转置
print(a.T.dot(a))#a的转置*a
np.clip(a,5,9)#clip()让矩阵中所有小于5的数=5,大于9的数=9.规定最大最小值
print(a[2][3])#按索引访问
a[2:]#取出第二行的所有数,:表示取所有数
a[:2]
for row in a:
    print(row)#迭代矩阵每一列
for column in a.T:
    print(column)#不能直接迭代列,可以利用转置来迭代
for item in a.flat: #flat返回的是一个迭代器
    print(item)#打印每一项。
print(list(a.flat)) #迭代器可以用列表输出
print(a.flatten())#将数组的副本转换为一个维度,并返回
a = np.array([1,1,1])
b = np.array([2,2,2])
c = np.vstack((a,b))#v stack(())上下合并ab,注意里面也有一个括号
print(c)
c = np.hstack((a,b))#左右合并a,b
print(a[:,np.newaxis].shape)#在后面增加一维,可以把一个行向量变成一个列向量
a[np.newaxis,:]#在a的前面增加一维
c = np.concatenate((a,b,b,a),axis=0)#多个array的合并,axis=0在列上进行合并,即纵向合并
##数组的分割split
a = np.arange(12).reshape((3,4))
print(a)
print(np.split(a,2,axis=1))#在纵向上分成两块
print(np.vsplit(a,3))#横向分割成三块
print(np.hsplit(a,2))#纵向分割成两块
##Numpy赋值
a = np.arange(4)
b = a#直接赋值的话a,b是一个东西,a变b就会变
b = a.copy()#深拷贝,a变b不会变。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值