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

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

时间:2024-07-23 23:25:02浏览次数:17  
标签:精细化 存储 科学计算 切片 索引 二维 数组 numpy order

续接上集:

1、reshape函数:重塑数组的形状

        改变数组的维度

        其语法为 numpy.reshape(arr, newshape, order='C')

如下图所示

        首先生成一个1到17不包括17的16个元素的数组,然后对这个数组进行重塑,使其成为4行4列的二维数组,注意:此处数组内元素的个数必须等于reshape中数字相乘的积

2、order="C"/order="F"/order="A"

        order参数用于指定重塑后的元素在新数组中的存储顺序

        order='C'表示按行顺序存储,也称为C风格存储。在二维数组中,默认情况下,按行存储意味着每一行的元素会被连续地存储在内存中。

        order='F'表示按列顺序存储,也称为Fortran风格存储。与C风格存储相反,在二维数组中,按列存储意味着每一列的元素会被连续地存储在内存中。例如,在一个形状为(3, 4)的二维数组中,第一列的元素会连续存储在内存中,然后是第二列的元素,最后是第三列的元素。

        order='A'表示原始顺序存储,如果输入数组是连续的,那么重塑后的数组也将是连续的。这是默认的存储顺序。

3、一维数组索引和切片

        ndarray对象的内容可以通过索引或切片来访问和修改,与 Python中 list 的切片操作一样。          ndarray 数组可以基于 0 - n 的下标进行索引,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组。

其中索引值同样是从0开始

具体操作可看下图,与list列表的切片基本一致

4、二维数组的索引和切片

4.1  二维数组的切片可通过索引直接获取,例如下图所示

    

图为索引获取,即如果要获取一整行的数组,那么就直接索引行号,获取单个数据的话则是两种索引方式,一种是如上图的写在两个括号内的索引为2的行索引为1的列,以及放在一个括号里的坐标索引2行1列。

4.2  坐标获取

第二张图为坐标获取,括号内逗号两边分别代表行和列,:则代表开始到结束,以及步长,第二张图的最后一条为逗号左边为行,右边为列,括号内为索引行2对应右边的索引列1,索引行3对应索引列0。

4.3 二维数组的负索引的使用

如上图所示,同样是逗号左边是行,逗号右边是列,:为其开始到结尾以及步长

4.4 索引改变数组的值

4.5 切片数组的复制

5、ravel 、flatten、reshape :降维

6、数组的拼接

6.1  concatenate()

        用于沿指定轴连接相同形状的两个或多个数组, 格式如下:

6.1.1 列表的拼接

6.1.2 一维数组的拼接

6.1.3 二维数组的拼接np.concatenate([a,b],axis=0)

标签:精细化,存储,科学计算,切片,索引,二维,数组,numpy,order
From: https://blog.csdn.net/qq_64603703/article/details/140647138

相关文章

  • 精细化管理:项目经理日常管理的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......
  • 为什么 NumPy 标量与自定义序列相乘而不与列表相乘?
    我有一个问题要问NumPy专家。考虑一个NumPy标量:c=np.arange(3.0).sum()如果我尝试将它与自定义序列相乘,例如classS:def__init__(self,lst):self.lst=lstdef__len__(self):returnlen(self.lst)def_......