首页 > 其他分享 >《专题》numpy科学计算基础库——精细化讲解 <1>

《专题》numpy科学计算基础库——精细化讲解 <1>

时间:2024-07-23 23:25:35浏览次数:9  
标签:精细化 创建 元素 生成 shape 数组 科学计算 numpy

一、什么是numpy库

        Numpy(Numerical Python) 是科学计算基础库,提供大量科学计算 相关功能,比如数据统计,随机数生成等。其提供最核心类型为多维数组类型(ndarray),支持大量的维度数组与矩阵运算, Numpy支持向量处理ndarray对象,提高程序运算速度。

二、安装numpy库

1、通过pip直接安装

pip install numpy

2、安装pandas库也可以,因为安装pandas库的时候会自动帮你安装numpy库

pip install pandas

3、使用jupyter notebook 编写代码

        使用方法:直接在pycharm的终端页面输入jupyter notebook,输入以后点击回车,即可打开使用页面,此时页面中的内容就是pycharm存放代码的位置,因为pycharm社区版没有jupyter功能,其文件后缀名为.ipynb

打开以后点击右侧(new)然后再点击第一条Python3打开页面,更改文件名可以在左上角找到rename即可。

jupyter notebook方便进行数据的处理,其可以对每一步都做出运行,每输入一行,长按shift+回车即可运行当前行代码,并进入下一行

三、使用numpy库函数

1、arange创建数组        

        该函数可以传入一个整数类型的参数n,函数返回值看着像一个列表,其实返回值类型是numpy.ndarray,这是 Numpy 中特有的数组类型。如果传入arange 函数的参数值是 n ,那么 arang 函数会返回 0到n-1 的ndarray类型的数组。 其使用方法如下:

例如:

上述则是一个一维数组

同样也可以生成一个二维数组:

2、array函数:生成多维数组

        array函数可以生成多维数组,如果要生成一个二维数组,需要向array函数传递一个列表类型参数每一个列表元素是一维的ndarray类型数组,作为二维数组的行。另外,通过ndarray类的shape属性可以获得数组每一维的元素个数(元组形式),也可以通过shape[n]形式获得每一维的元素个数,其中n是维度,从0开始

其书写格式如下:

numpy.array(object, dtype = None, copy =True, order = None, subok = False, ndmin = 0)

如图所示即为一个二维数组(两个中括号),

其同样可以生成一个多维数组,图示为三维数组,但是括号内需要齐次

2.1 shape

如图输出的内容说明这个数组是两行三列的,如果在shape后加个中括号shape[0],则说明输出这个二维数组第一维的元素个数

即图示为三行四列元素,shape[0]输出第一维的元素个数,shape[1]输出第二位的元素个数

2.2  ndmin:用于指定生成的数组的最小维数

其生成一个三维数组

2.3 dtype: 是用于指定数组数据类型的参数

float64表示数组中的元素类型是64位浮点数(双精度浮点数)

3、random:生成随机数

3.1、random.random : 0.0-1.0之间的随机小数

        其中size为一个值时表示一维这个数字个数的随机数,(a,b),则表示二维a行b列,以此类推

3.2、random.randint:随机整数

        下图表示生成4以内的随机整数

        下图表示生成[4,6)之间的随机整数

        下图表示生成[4,10)之间的整数3个,并生成一个一维数组

3.3  randn(d0,d1,…,dn): 正态分布

        randn函数返回一个或一组样本,具有标准正态分布(期望为0,方差为1)

        dn表格每个维度,返回值为指定维度的数组 下图表示随机生成2行3列二维数组,其满足正态分布

3.4 normal 指定期望和方差生成正态分布

下列为随机生成平均值(期望)loc为10,方差为1的3行4列二维数组

3.5  ndarray 对象

        Numpy 最重要的一个特点是其 N 维数组对象 ndarray ,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。

其对象属性如下:

如下图即可展示:

4、zeros创建:创建指定大小的数组,数组元素以 0 来填充

        例如下列,创建一个3行4列的二维数组:

4.1 zeros_like:根据传入的数组形状创建全为0的数组

5、ones创建:创建指定形状的数组,数组元素以 1 来填充。

5.1 ones_like():根据传入的数组形状创建全为1的数组

6、empyt创建

        创建一个指定形状(shape )、数据类型( dtype )且未初始化的数 组,里面的元素的值是之前内存的值:

7、full()创建:

        创建全为某个指定值的数组 即创建2行2列的全为1的数组

8、add

        用于执行元素级加法的函数。它可以用来将两个数组中对应位置的元素相加,并返回一个新的数组,新数组的每个元素都是对应位置上两个输入数组元素的和

类似于a+b

9、eye / identity 创建单位矩阵

        单位矩阵从左上角到右下角的对角线上的元素均为1, 除此以外全都为0 。任何矩阵与单位矩阵相乘都等于本身,而且单位矩阵因此独特性在高等数学中也有广泛应用。

10、linspace创建:等差数列

linspace 函数用于创建一个一维数组,数组是一个等差数列构成的,格式如下:

1开始10结束,包含1和10,生成个数10个元素的等差数列一维数组,其中步距为1

11、logspace创建:等比数列

格式如下:

如下图所示

2开始,256结尾,endpoint默认结尾为True包含结尾,个数为numa为16个,对数的底数base为2,默认base为10

标签:精细化,创建,元素,生成,shape,数组,科学计算,numpy
From: https://blog.csdn.net/qq_64603703/article/details/140643239

相关文章

  • 《专题》numpy科学计算基础库——精细化讲解 <2>
    续接上集:1、reshape函数:重塑数组的形状    改变数组的维度        其语法为numpy.reshape(arr,newshape,order='C')如下图所示        首先生成一个1到17不包括17的16个元素的数组,然后对这个数组进行重塑,使其成为4行4列的二维数组,注意:此处......
  • 精细化管理:项目经理日常管理的38项要务!
    在当今快速变化的商业环境中,项目管理作为推动企业战略目标实现的关键环节,其重要性日益凸显。作为项目管理的核心角色,项目经理不仅需要具备全面的知识和技能,更需要在日常管理中实施精细化管理策略,以确保项目的高效、高质完成。对于项目经理而言,实施精细化管理意味着要在项目......
  • python每日学习:numpy库的用法(上)
    python每日学习10:numpy库的用法(上)下载numpy库pipinstallnumpy检测环境是否安装importnumpyimportnumpyasnpa=np.arange(10)print(a)array创建数组名称描述dtype数组元素的数据类型,可选copy对象是否需要复制,可选order创建数组的样式,C为行方向,F为列方向,A......
  • Python面试题:使用NumPy进行高效数组运算
    NumPy是Python中进行高效数组运算的基础库。以下是一些示例,展示了如何使用NumPy进行高效的数组运算,包括创建数组、数组操作、数学运算以及一些高级操作。安装NumPy如果你还没有安装NumPy,可以通过以下命令进行安装:pipinstallnumpy示例代码1.创建数组import......
  • Pandas 和numpy 入门详细笔记
    1.安装和导入1.1安装pipinstallpandaspipinstallnumpy1.2导入importpandasaspdimportnumpyasnp2.数据结构2.1Series(系列)定义:一维标签化数组,可以保存任何数据类型(整数、浮点数、字符串等)。创建Series:#从列表创建s=pd.Series([10,20,30,40]......
  • 并行化 numpy.sort
    我需要对长度为1e8-1e9的uint64数组进行排序,这是我当前项目中的性能瓶颈之一。我最近刚刚更新了numpyv2.0版本,其中排序算法得到了显着优化。在我的硬件上测试它,它比numpyv1.26版本快大约5倍。但目前numpy的排序算法即使使用SIMD,也无法利用多核CPU。我尝试将其并行......
  • NumPy 连续矩阵乘法向量化
    我有一个NumPy数组ar形状(M,L,N,N)我想连续乘以L(N,N)矩阵(multiplied_ar[m]=ar[m,0,:,:]@ar[m,1,:,:]@...)以获得形状数组(M,N,N)是否有可能|||向量化以某种方式这样我就不必迭代和......
  • NumPy 广播数组是否会在二进制运算期间创建?
    我有两个numpy.ndarray具有不同形状的实例。如果我添加这两个数组,它们之间将发生广播:importnumpyasnpx=np.array([1,2,3])y=np.array([[2,3,5],[7,11,13]])print(x+y)#[[358]#[81316]]广播数组会被创建吗?也就......
  • 在感知器学习模型的 Python 实现中将数组传递给 numpy.dot()
    我正在尝试将单层感知器分类器的Python实现放在一起。我发现SebastianRaschka的《Python机器学习》一书中的示例非常有用,但我对他的实现的一小部分有疑问。这是代码:importnumpyasnpclassPerceptron(object):"""Perceptronclassifier.Parameters......
  • 句子转换器导入失败:没有名为“numpy.strings”的模块
    我有一个使用python3.11安装了Sentence-Transformers的虚拟环境。我应该拥有所有依赖项,例如torch和numpy等。我正在vs-codejupyter笔记本中运行,到目前为止它在Colab上似乎运行良好。什么是numpy.strings?尝试导入时出现此错误:ModuleNotFoundError......