首页 > 其他分享 >numpy

numpy

时间:2022-11-01 16:48:59浏览次数:46  
标签:矩阵 print 数组 np numpy axis

一、numpy是什么

将所有的数据通过numpy表示成数组的形式,也就是将他们进行向量化

因为numpy对数据所有的运算都是基于数组的,因此在运算之前需要将

数据表示成数组的形式

导入:import numpy as np

创建数组:np.array([1,2,3,4,5])

创建全0的数组:np.zeros((3,2))  #三行两列

#在numpy中数组可以是一维、二维(存放矩阵或者表格数据)或者更高维

获取数组的尺寸:a.shape()

>>>(m,n) #m表示的是一维的尺寸,即行数,n表示的是二维的尺寸,即列数

创建一个全部是1的数组:np.ones(m,n)

创建一个递增或者递减的数组:np.arange(m,n)

np.linspace(x,y,s)  #返回置于某个区间,等间距分割的数,x,y是区间的范围,s是输出 样本的总数

np.random.rand(x,y) #生成一个随机的数组

在numpy中,数组默认的数据类型是64位的浮点类型,可以在创建数组是,使用

dtype指定其他的类型  位数越小,所占用的空间小

>>>a = np.zeros((4,2),dtype=np.int32) #指定的整型的32位

使用astype转换数据类型

>>>np.dot(a,b) #将两个向量相乘

>>>.var() #返回数据的方差

>>>.std() #返回数据的标准方差

>>>a=np.array([[1,2,3]

[5,6,]])

>>>a.sum(axis=0) #当参数axis=0时,会将a中的没一个数组对应相加

>>>a.sum(axis=1) #axis=1,会将第一列的数组对应相加

 

切记在python中几次方法:a**2 not a^2

numpy中求sin、cos、tan、

>>>c=10*np.sin(a)

 

二、numpy中的乘法

a=np.array([[1,1],

      [0,1]])

b=np.arange(4).reshape((2,2))#也是矩阵,将随机生成的4个数分解成二行二列的矩阵

numpy中的乘法分为两类,一个是逐个相乘,一个是矩阵中的乘法

1.逐个相乘

>>> b=np.array([[1,1],[0,1]])
>>> c=np.arange(4).reshape((2,2))
>>> print(b*c)
[[0 1]
 [0 3]]
>>> print(b)
[[1 1]
 [0 1]]
>>> print(np.dot(b,c))
[[2 4]
 [2 3]]

 2.用矩阵的形式相乘

=np.dot(a,b)

另外一种形式: =a.dot(b) #第一个矩阵乘第二个矩阵

随机生成一个矩阵:

a=np.random.random((2,4))

 

三、一些函数

np.sum(a,) #求矩阵a的所有数字的和
np.min(a) #求矩阵中所有数据的最小值
np.max(a)#求矩阵a中所有数据的最大值

 如果需要指定行和列,则需要引入参数axis

print(np.min(a,axis=1)) #就是在每一行进行搜索
print(np.max(a,axis=0))#等于0就是每一列进行搜索

 

四、numpy中的索引

 

np.argmin(A) #索引其位置的最小值

np.argmax(A) #索引其位置的最大值

np.mean(A) #求整个矩阵的平均值

np.average(A)#也是求整个矩阵的平均值

np.median(A) #求中位数

np.cumsum(A) #求累加的值,第一个数是第一个数,第二个数是di

np.diff() #累差

np.sort(A)  #对数组逐行进行排序

np.transpose(A) #矩阵的转置

np.clip(A,5,9)  #A里边所有小于5的数等于5 ,大于9的数等于9

np.mean(A,axis=0、1) #指定对行或者列进行平均数的计算 输出的结果还是矩阵的形式

print(A[2][1]) #打印出的是一个数

print(n) #打印出的是第n行

print(:,1) #打印出第一列

print(A[1,1:2]) #打印出第一行1-2列的数

五、numpy中的数组合并

A =np.array([1,1,1])

B=np.array([2,2,2])

C=np.vstack((A,B))  #对数组进行一个上下合并

D=np.hstack(A ,B)  #代表着一个左右合并

A=np.array([1,1,1])[:,np.newaxis]

B=np.array([2,2,2])[:,np.newaxis] #对序列进行转置;

C=np.concatenate((A,B,B,A),axis=0)  #在列的维度进行合并,如果axis=1的话,就是在横向的维度进行合并

五、array的分割

A=np.arange(12).reshape(3,4)
np.split(A,2,axis=1) #按照列将数组分成两块,也就是横向分割,即将每一行都分开
np.split(A,3,axis=0) #进行横向分割,分成不同的三块,也就是说按照列的顺序进行分割

 

 split 只能进行相等的分割,不能进行不等的分割

怎么进行不等分割呢

print(np.vsplit(A,3)) #分成三块,纵向分割
print(np.hsplit(A,2)) #横向分割

 

 

 

六、numpy的赋值

 

直接变量赋值的话就是会导致一个变量改变其他变量也改变,但是用 b=a.copy()的话只是赋给值,后续a改变不会导致b的改变,也就是深拷贝。

 

标签:矩阵,print,数组,np,numpy,axis
From: https://www.cnblogs.com/bokeyuanjj/p/16848223.html

相关文章

  • np.clip()的用法和python,numpy中np.random.choice()的用法详解
    np.clip()的用法 numpy.clip(a,a_min,a_max,out=None)Clip(limit)thevaluesinanarray.Givenaninterval,valuesoutsidetheintervalareclippedtoth......
  • 第3章 Jupyter Notebook, numpy和matplotlib
     3-1jupyternotebook基础Notbook示例  Notbook源码1[1]2forxinrange(5):3print('helloworld')4helloworld5helloworld6hello......
  • numpy(ndarray)和tensor(GPU上的numpy)速查
    类型(Types)NumpyPyTorchnp.ndarraytorch.Tensornp.float32torch.float32;torch.floatnp.float64torch.float64;torch.doublenp.floattorch.float1......
  • numpy和 pandas学习
    这是我自己的学习笔记,就不要看了。##技术篇###numpy基础-numpy生成随机数据np.random.normal(0,10,1024)标准正态分布平均数0,标准差10,1024个数据,正态分布也......
  • Numpy
    ndarray对象基本应用标准的Python中用列表(list)保存一组值,可以当作数组使用。但由于列表的元素可以是任何对象,因此列表中保存的是对象的指针。对于数值运算来说,这种结构......
  • 用numpy实现最简单的前馈神经网络——正向网络建立篇
    目录mnist分析(输入分析)下载简要说明加载显示输出分析拟合函数建立激活函数拟合函数正向计算梯度梯度下降最终代码根据上一篇文章,来构建神经网络吧明确输入和输出选择合......
  • 用numpy实现最简单的前馈神经网络——神经网络架构篇
    目录神经网络架构矩阵运算拟合——深度学习的目的最简单的拟合——线性回归深度学习中的拟合平均损失最小——梯度下降法反向传播和链式法则激活函数和损失函数的选择总结......
  • Numpy温习函数方法
    一、NumpyPandas1.1简介方便数组矩阵运算1.2优势运算速度快:numpy和pandas都是采用C语言编写,pandas又是基于numpy,是numpy的升级版本。消耗资源少:采用的是......
  • python numpy 基础科学计算包,数学函数库
    pipinstallnumpynumpy.array()函数,强大的N维数组对象ndarrayimportnumpyasnpa=np.array([1,2,3])print(a)[123]#多于一个维度importnumpyasnpa......
  • 【Python数据分析】数据的维度、Numpy
    数据的维度一维数据一维数据由对等关系的有序或无序数据构成,采用线性方式组织列表和数组二维数据是由多个一维数据组成,是一维数据的组合形式多维数据由一维或二维数......