当前位置: 首页 > news >正文

成都产品网站建设邢台网站建设报价

成都产品网站建设,邢台网站建设报价,wordpress 投票插件,而的跟地seo排名点击软件NumPy(Numerical Python)是 Python 生态中用于科学计算的核心库,提供高性能的多维数组对象(ndarray)及相关的数学运算工具。其核心功能围绕数组操作、线性代数、随机数生成等,是数据科学、机器学习等领域的…

        NumPy(Numerical Python)是 Python 生态中用于科学计算的核心库,提供高性能的多维数组对象(ndarray)及相关的数学运算工具。其核心功能围绕数组操作、线性代数、随机数生成等,是数据科学、机器学习等领域的基础依赖。

numpy核心数据类型

        NumPy 的核心是 ndarray(N-dimensional array),一种高效存储和操作多维数据的容器。与 Python 原生列表相比,ndarray 支持矢量化运算,避免循环,显著提升性能。

  • 特性
    • 固定大小,创建后不可变(元素可修改)。
    • 所有元素类型相同(dtype 指定)。
    • 支持广播(Broadcasting)机制实现不同形状数组的运算。

numpy安装

        这个我们可以直接在命令行窗口或者终端进行pip install numpy就行了,但是可能会比较慢,我们这里加上清华的镜像源

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

创建一个ndarray对象

1 直接创建

import numpy as npa=np.array([0,1,2,3,4,5,6,7,8,9,10,11,12,13])
print(type(a))

这样我们就创建了一个数组(如果我们想创建一个多维数组对象,我们直接传入一个多维数组就行了),我们还查看了一下,我们创建了一个什么类型的数据,结果输出<class 'numpy.ndarray'>,这样我们就要记得,numpy创建的数据类型为<class 'numpy.ndarray'>

2 用可迭代对象arrang创建

import numpy as np
r1 = np.arange(0,9,3)
print(r1)

这里我们创建了一个一维的数组对象,可迭代对象内容为 [0 3 6]

3 用linspace创建

import numpy as np
r2 = np.linspace(0,1,5)
print(r2)

 先给出结果[0.   0.25 0.5  0.75 1.  ]

从结果可以看出,有三个参数,前两个为区间的左右两头数值,最后一个表示个数,要注意这个数组内容都是浮点型的,对于arrange相比,这个左右区间都是闭的。

4 创建特殊数组

import numpy as np
a=np.zeros(3)
print('一维:\n',a)
b=np.zeros((3,3))
print('二维:\n',b)
c=np.zeros((3,3,3))
print('三维:\n',c)

输出结果:

 这里我们创建了几个全0矩阵,以为我们只能传入一个参数。那么我们要传入几个参数的术后,我们要传入一个数组,数组中几个数表示几位的。大小就是数组的那样n*n*n的,同样全一数组也是这样的,用np.ones()就不展示了。

5 full()创建矩阵

import numpy as np
a=np.full((3,3),6)
print(a)

输出结果:

我们可以看到,full可以提供两个参数,一个来控制矩阵的维度大小,另有一个控制填充值。

6 创建单位矩阵

import numpy as np
a=np.eye(5,5)
print(a)

 输出

这里我们输出了一个矩阵,对角线全一,如果列和行不相同,那么就从左一开始为一,大家可以试下。

另外我们可以通过对我们创建的这个多维数组对象进行查看

我们可以看到这里有许多方法 ,其中包含许多方法,例如reshape,dot,copy,ndim等等,下面我们来说些常用的

numpy常用操作

1 查看矩阵基本数据类型

import numpy as np
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
print('矩阵形状',a.shape)
print('矩阵维度',a.ndim)
print('矩阵大小',a.size)
print('矩阵储存位置',a.data)
print('每个矩阵数据存储所占位置',a.itemsize)

输出结果

2 基本运算

import numpy as np
array1 = np.array([[1,2],[3,4]])
array2 = array1 * 2print(array1 + array2)  # 加法
print(array1 - array2)  # 减法
print(array1 * array2)  # 乘法
print(array1 / array2)  # 除法
print(array2 % array1)  # 取余
print(array1 // array2) # 取整

输出结果 

3 reshape方法

这个既可以升维度也可以降维度。

import numpy as np
a=np.array([1,2,3,4,5,6,7,8])
b=a.reshape(2,4)
c=a.reshape(2,-1)
print(a)
print(b)
print(c)

 这里我展示了两种修改数据形状的方法,一种给出确定的大小,然后就可以转化到自己想要的了,还有一种给出一个确定的,剩下可以让机器自己算,注意这里要可以整除,不然会报错。

我们这里还要注意,a.reshape(2,4)是又创建了一个副本,并不是对原来的数据进行修改,如果要对原本数据进行修改,我们要对他进行赋值例如a=a.reshape(2,4).

4 resize()方法

import numpy as np
a=np.array([[1,2,3,4,5,6,7,8],[1,2,3,4,5,6,7,8]])
b=a.resize(2,2)
print(a)
print(b)

输出

resize是一个可以调整矩阵大小的方法。可以调整到自己指定的大小。这里调整后的数据是从第一行开始取,作为我们调整后的数据。

注意!这里a.resize(2,2)是一个None值,说明我们调整的是a原本数据

5 repeat

import numpy as np
a=np.array([1,2,3])
c=a.repeat(3)
print(c)

 输出

这个是将矩阵中每个值x参数个,不是数值x而是x个数。

6 选取

                        ​​​​​​​        

import numpy as np
a=np.array([[1,2,3,4,5,6,7,8],[9,10,11,12,13,14,15,16],[17,18,19,20,21,22,23,24]])
print(a[1:3,2:8])

结果

我们可以根据矩阵进行想列表中切片那样,进行选取,拿第一个参数表示第一维为例,如果是[0:3]就表示从第一行到第二行的全选中了,[1:]表示第二行以及后面的。后面参数也是这样。

7 flatten()

import numpy as np
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
b=a.flatten()
print(b)
#c = a.ravel()  有相同的作用

输出

这个函数就相当于np.reshape(-1),revel也可以,但是flatten用到最多就是把矩阵展开变成一维的

8 矩阵的基本运算

点乘

import numpy as np
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(np.dot(a,[[2,2,2],[2,2,2],[2,2,2]]))
print(a.dot([[2,2,2],[2,2,2],[2,2,2]]))

输出 

这里我用了两种点乘的方法,输出结果一样。这里是矩阵与矩阵之间的相乘。

这里还有点需要注意的是,矩阵直接直接相乘是a*b,点乘是dot(a,b),矩阵直接相乘也可以a*2这样可以直接将矩阵的数值扩大二倍。

转置

import numpy as np
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
b=a.T
print(a)
print(b)

输出直接用a.T来实现,这里也是生成了一个副本不是对源数据进行修改 

求逆

这里是求伪逆,不管这个矩阵有没有可逆,都可以求所以我们要验证下

import numpy as np
a=[[1,2],[3,4]]
b=np.linalg.inv(a)
print(b)
print(np.dot(a,b))

输出

 9 连接

import numpy as np# 生成基数组
array1 = np.array([[1,2,3],[4,5,6]])
array2 = np.array([[7,8,9],[10,11,12]])# 水平组合(沿列方向拼接)
a3 = np.hstack((array1, array2))     # 水平拼接array1和array2
a4 = np.hstack((array2, array1))     # 水平拼接array2和array1
a5 = np.hstack((array1, array2, array1))  # 三数组水平拼接
a6 = np.concatenate((array1, array2), axis=1)  # 等价于vstack
print(a3)
print(a4)
print(a5)# 垂直组合(沿行方向拼接)
a7 = np.vstack((array2, array1))     # 垂直拼接array2和array1
print(a6)# 通用连接函数(axis=0为垂直方向)
a8 = np.concatenate((array1, array2), axis=0)  # 与vstack效果相同
print(a8)

输出​​​​​​​

上面我们采用了三种方法,分别是三种方法一种垂直方向,一种水平方向,还有给用concatenate来实现。可以参照对应输出来看。

http://www.dtcms.com/a/451831.html

相关文章:

  • 申请网站域名怎么做网站中国企业黄页大全
  • 拓展公司网站建设一条龙网站建设价格
  • php在网站开发中的作用互联网营销推广公司
  • 知名网站建设策划做微网站的第三方登录
  • 自己做图片上传网站未备案个人网站 如何挣钱
  • 台式机做网站服务器linux wordpress是什么
  • 个人博客网站制作代码学校品牌建设
  • 大数据专业主要学什么西安百度关键词优化
  • 中国建站网专业集团门户网站建设公司
  • 深圳网站建设有没有市场主流搜索引擎有哪些
  • 阿里巴巴网站做方案discuz图片网站模板
  • 扬州网站建设企业10秒折一把古风伞
  • 化工产品东莞网站建设中企动力科技股份有限公司南通分公司
  • 惠州城乡住房建设厅网站平顶山 网站设计
  • 网站建设的内容商标查询天眼查
  • 京东一面首页数据庞大需要调用50+接口如何做到毫秒级响应
  • 网站收录提交建设网站用的软件
  • 光全息|单层-级联全息像的可控切换
  • 光通信|可旋转DNN赋能OAM模式可控路由
  • 【网站建设wordpress 中英
  • 拆分盘的网站开发费用北京广告制作公司
  • 做网站需要用什么开发软件现在哪个网站可以做外贸
  • 自己建网站怎么建江苏建设教育网官网入口
  • 怎么做好网站营销创建学校网站
  • 企业电子商务网站平台建设织梦网站图片代码
  • mvc6电商网站开发实战广东省阳江市网络问政平台
  • 建设银行u盾用网站打不开企业信用信息公示平台
  • 雅茂道网站建设网站建设公司 技术评估
  • 保姆给老人做爰神马网站网站建设参考文献
  • 口碑好的镇江网站建设系统优化大师免费版