NumPy(1)-常用的初始化方法

这篇具有很好参考价值的文章主要介绍了NumPy(1)-常用的初始化方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、NumPy介绍

  NumPy是Python中科学计算的基础包,它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。

  • 功能强大的N维数组对象。
  • 精密广播功能函数。
  • 集成 C/C+和Fortran 代码的工具。
  • 强大的线性代数、傅立叶变换和随机数功能。

二、Ndarray介绍

  NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。ndarray 对象是用于存放同类型元素的多维数组。ndarray 中的每个元素在内存中都有相同存储大小的区域。

三、Ndarray和python中的list列表的区别

  C数组:学过C语言的都知道,在C语言中数组是一个连续的内存空间,并且数组中的数据的类型也是一致的。

  python列表:python中的列表里面存放的对象,可以是不同的数据类型。其底层实现是通过类似C语言中的指针数组来实现,即python的列表中存放的数据的指针即他们的地址,然后再根据这个指针找到具体的数据。

  Ndarray数组:和C语言数组实现类似,也是一段连续的内存空间,里面存放的也是相同的数据类型。

  详细如下:

  • NumPy 数组在创建时具有固定的大小,与Python的原生数组对象(可以动态增长)不同。更改ndarray的大小将创建一个新数组并删除原来的数组。
  • NumPy 数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。
  • NumPy 数组有助于对大量数据进行高级数学和其他类型的操作。通常,这些操作的执行效率更高,比使用Python原生数组的代码更少。

四、初始化NumPy数组

  1、安装 numpy 包

    pip3 install numpy

  2、导入 numpy 包

    import numpy

  3、使用一个列表初始化一个NumPy数组

    函数作用:初始化一个NumPy数组

    函数原型:numpy.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0)

    参数示例:

      * object: 必填参数:即创建NumPy数组的数据对象

      * dtype: 可选参数,通过它可以更改数组的数据类型---可将原来的整型或者其他类型进行强制转换

      * copy: 可选参数,当数据源是ndarray 时表示数组能否被复制,默认是True

      * order: 可选参数,以哪种内存布局创建数组,有3个可选值,分别是C(行序列)/F(列序列)/A(默认)

      * ndmin: 可选参数,用于指定数组的维度--例如 一维数组、二维数组、三维数组等

      * subok: 可选参数,类型为bool值,默认为False。 为True,使用object的内部数据类型; 为False 使用object数组的数据类型

    代码示例:

    NumPy(1)-常用的初始化方法

     注意:

      * 其中np_array就是Ndarray类型。

      * data_list中的数据类型是不一致,但是转化成np_array后,数据格式一致了,都变成了字符串类型。

      * 如果传进来的列表包含不同的类型,则统一转化为同一类型,转化的优先级:str>float>int,即有str则都转化为str,这样才能保证NumPy数组中数组的一致性。

  4、numpy.ones()

    函数作用:创造出来的数组里面填充的都是1

    函数原型:numpy.ones(shape, dtype=None, order='C', *, like=None)

    参数解释:

      * shape:创建出来数组的形状,是一维数组,还是二维数组,还是多维数组等等

      * dtype:数据的类型

      * order:指定内存重以行优先(‘C’)还是列优先(‘F’)顺序存储多维数组。

    代码示例:

    NumPy(1)-常用的初始化方法

     注意:

      shape = (m,n) m行n列, 二维数组

      shape = (m)  m个元素的一维数组 [1,2,3]

      shape = (m, ) m个元素的一维数组

      shape = (m, 1) m行1列 二维数组 [[1],[2],[3]]

      shape = (1,m) 1行m列 二维数组 [[1,2,3]]

   5、numpy.zeros()

    函数作用:其用法和ones()一样,只不过被填充的由1变成了0

    函数原型:zeros(shape, dtype=float, order='C', *, like=None)
 
            代码示例:
    NumPy(1)-常用的初始化方法

   6、numpy.ful()

    函数作用:使用自己指定数字填充数组内容

    函数原型:numpy.full(shape, fill_value, dtype=None, order='C', *, like=None)

     代码示例:

    NumPy(1)-常用的初始化方法

  7、numpy.linspace()

    函数作用: 生成等差数列的数组

    函数原型:linspace(start, stop, num=50,endpoint=True,retstep=False,dtype=None)

    参数解释:

      * start,起始点
      * stop,结束点
      * num,元素个数,默认 50
      * endpoint,是否包含 stop 数值,默认为 True,包含 stop 值;若为 False,则不包含 stop 值
      * retstep,返回值形式,默认为 False,返回等差数列组,若为True,则返回结果 (array([‘samples’, ‘step’]))
      * dtype,返回结果的数据类型,默认无,若无,则参考输入数据类型
    

    代码示例:

    NumPy(1)-常用的初始化方法

  

  8、numpy.arange()

    函数作用:根据步长生成等差数列

    函数原型:arange([start,] stop[, step,], dtype=None, *, like=None)

    代码示例:

    NumPy(1)-常用的初始化方法

  9、numpy.random.randint()

    函数作用:使用随机数创建NumPy数组

    函数原型:randint(low, high=None, size=None, dtype=int)

    参数示例:

      * low:随机数的最小值

      * higt:随机数的最大值

      * size:生出数组的形状

      * dtype:数据类型

    代码示例:

    NumPy(1)-常用的初始化方法

     注意:类似的函数还有下面几个,用法也类似

      * numpy.random.random(size): 随机生成小数的NumPy的数组

      * numpy.random.randn(d0, d1, ..., dn): 标准正态分布

      * np.random.normal(): 普通正态分布

 五、ndarray的属性

  通过上面的示例,我们看到有几个属性是ndarray常用的属性,这里我们总结如下:

  四个必记的属性

    * ndim: 维度

    * shape: 形状

    * size: 总长度

    * dtype: 元素类型

  代码示例:

    NumPy(1)-常用的初始化方法

 文章来源地址https://www.toymoban.com/news/detail-568823.html

 

到了这里,关于NumPy(1)-常用的初始化方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Set的初始化方法

    定义了一个Set后,我想把它初始化一下. 这种初始化的方法,比第一种要简单一些,利用的有两个Java知识点,一个是匿名内部类,一个是实例初始化块。 补充:对于这样的匿名类,是无法获取它的对象的。

    2024年02月11日
    浏览(35)
  • C++结构体初始化方法

    在 C++ 里可以将结构体看作没有任何成员函数的对象,下面对 C++ 结构体的几种初始化方法进行总结。 如果只是想全部初始化为 0 可以按照如下方法 结构体包含数组(数组在结构体变量定义完就初始化为0) 直接赋值的方法虽然很直观,但是如果需要初始化多个结构体变量,

    2024年02月16日
    浏览(47)
  • 神经网络的初始化方法

    对于神经网络的训练过程中,合适的参数初始化方法有助于更好的处理梯度消失和梯度爆炸问题。 通常有以下几种初始化方法: 随机初始化(Random Initialization):最简单的初始化方法是随机生成参数的初始值。可以根据一定的分布(如均匀分布或正态分布)从一个较小的范

    2024年02月15日
    浏览(45)
  • java中初始化数组的方法

    方式一: 注:此种方式创建的数组,如不显式初始化数组元素,则各元素为当前数据类型的默认值。基本数据类型为0,对象类型为null。所以使用前需要将各元素显式赋值。 方式二: 注:此方式与方式一的结果相同,但是更简便。 方式三: 注:此方式与方式一和方式二的结

    2024年02月12日
    浏览(43)
  • 【Java】构造方法及类的初始化

    活动地址:CSDN21天学习挑战赛 ✨ 博客主页: XIN-XIANG荣 ✨ 系列专栏: 【Java SE】 ✨ 一句短话: 难在坚持,贵在坚持,成在坚持! 构造方法(也称为构造器)是一个特殊的成员方法,其名字必须与类名相同,在创建对象时,由编译器自动调用,并且在整个对象的生命周期内只调用一次。

    2023年04月10日
    浏览(40)
  • c++初始化vector的几种方法

    在C++中,vector是一种动态数组,可以在运行时自由添加、删除元素。初始化vector是创建一个vector对象并为其分配内存空间的过程。以下是C++中初始化vector的几种方法: 默认构造函数 使用默认构造函数创建一个空的vector,如下所示: std::vectorint vec; // 创建空vector 这种方式可用

    2024年02月16日
    浏览(40)
  • C++笔记之初始化二维矩阵的方法

    —— 2023年5月20日 上海 code review!

    2024年02月04日
    浏览(53)
  • 理光M2701复印机载体初始化方法

      理光M2701基本参数 :        产品类型: 数码复合机        颜色类型: 黑白        复印速度: 单面:27cpm 双面:16cpm        涵盖功能:复印、打印、扫描        网络功能:支持无线、有线网络打印        接口类型:USB2.0        最高月印量:10000页        内存

    2024年02月16日
    浏览(31)
  • 基于Xml方式Bean的配置-初始化方法和销毁方法

    Bean的初始化和销毁方法配置 Bean在被实例化后,可以执行指定的初始化方法完成一些初始化的操作,Bean在销毁之前也可以执行指定的销毁方法完成一些操作,初始化方法名称和销毁方法名称通过 指定的方法名于自己创建的方法名一致即可 测试类 运行结果如下 我们还可以通

    2024年02月07日
    浏览(52)
  • Java 中 Map 初始化的几种方法

    方式1:传统方式 方式2:java8新特性-双括号初始化 匿名内部类通常会导致内存泄漏问题,因为它会隐式地持有外部类的引用,如果外部类的引用一直存在而没有释放,它所持有的内存也就不会被垃圾回收机制回收,产生内存泄漏。而通过使用静态内部类或者弱引用等技术可以

    2024年02月05日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包