根据既定数组创建数组的方法汇总 (第3讲)

根据既定数组创建数组的方法 (第3讲)
       在这里插入图片描述

🍹博主 侯小啾 感谢您的支持与信赖。☀️
🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ

✨本博客收录于专栏Python数据分析宝典.。
✨专栏特点:
    ①逻辑清晰,循序渐进,符合初学者思维,内容友好程度高。
    ②内容精炼,且不失重点,入门时间周期短。性比价高。
    ③能够兼容非科班,如金融,经济,统计,数学等专业的小伙伴。
    ④附实战案例加持,搭乘数分精通之路的直通车!

✨更多精彩内容敬请期待,小啾持续为您输出中!

文章目录

  • 1. `asarray()`函数
  • 2. `frombuffer()` 函数
  • 3. `fromiter()` 函数
  • 4. `empty_like()` 函数
  • 5. `zeros_like()` 函数
  • 6. `ones_like()` 函数
  • 7. `full_like()` 函数


1. asarray()函数

asarray方法是NumPy库中的一个函数,用于将输入转换为一个数组。如果输入已经是一个数组,则返回该数组本身,否则返回一个新的数组对象。

asarray方法的基本语法如下:

numpy.asarray(a, dtype=None, order=None)

参数说明:

  • a:输入的数据,可以是列表、元组、数组等可迭代对象。
  • dtype:可选参数,输出数组的数据类型。如果不指定,则根据输入的数据自动推断。
  • order:可选参数,指定数组在内存中的布局方式。可以是’C’(按行)、‘F’(按列)或’A’(原始顺序,默认)。

asarray方法可以将列表、元组、数组等可迭代对象转换为数组。如果输入已经是一个数组,则返回该数组本身。如果不指定数据类型(dtype),则根据输入的数据自动推断数据类型。默认情况下,asarray方法返回的数组与输入数据共享相同的数据缓冲区,即它们引用相同的内存地址。

代码示例:

import numpy as np# 将列表转换为数组
arr1 = np.asarray([1, 2, 3])
print(arr1)
print("-" * 20)# 将元组转换为数组
arr2 = np.asarray((4, 5, 6))
print(arr2)
print("-" * 20)# 创建一个数组,并指定数据类型
arr3 = np.asarray([7, 8, 9], dtype=float)
print(arr3)

输出:
                在这里插入图片描述


2. frombuffer() 函数

formbuffer()方法创建数组,该方法的特点及优势在于,该方法接收字节流形式的参数。
frombuffer() 方法用于从指定的缓冲区中创建一个新的一维数组。该方法将缓冲区解释为一维数组,并返回一个由缓冲区数据构成的数组。
frombuffer() 方法的基本语法如下:

numpy.frombuffer(buffer, dtype=float, count=-1, offset=0)

参数说明:

  • buffer:输入的缓冲区对象,可以是字节串、字节数组或可被转换为缓冲区的对象。
  • dtype:可选参数,输出数组的数据类型,默认为 float。
  • count:可选参数,要读取的元素数量,默认为 -1(表示读取所有元素)。
  • offset:可选参数,从缓冲区的偏移量开始读取数据,默认为 0。

示例使用:

import numpy as np# 使用字节数组创建数组
buffer1 = bytearray(b'abcdefgh')
arr1 = np.frombuffer(buffer1, dtype='S1')
print(arr1)
print("-" * 20)# 使用字节串创建数组
buffer2 = b'12345678'
arr2 = np.frombuffer(buffer2, dtype=np.uint8)
print(arr2)
print("-" * 20)# 使用偏移量和数量参数创建数组
buffer3 = b'abcdefgh'
arr3 = np.frombuffer(buffer3, dtype='S1', count=4, offset=2)
print(arr3)

输出:
              在这里插入图片描述

需要注意的是,frombuffer() 方法将缓冲区解释为一维数组,并返回由缓冲区数据构成的数组。在创建数组时,可以指定数据类型、读取元素数量以及偏移量的位置。


3. fromiter() 函数

NumPy 库中,fromiter() 函数用于从可迭代对象中创建一个新的一维数组。
fromiter() 的基本语法如下:

numpy.fromiter(iterable, dtype, count=-1)

参数说明:

  • iterable: 可迭代对象,例如列表、元组等。
  • dtype: 输出数组的数据类型。
  • count: 可选参数,指定要从可迭代对象中读取的元素数量。默认为 -1,表示读取所有元素。

示例使用:

import numpy as np# 从列表中创建数组
my_list = [1, 2, 3, 4, 5]
arr1 = np.fromiter(my_list, dtype=int)
print(arr1)
print("-" * 20)# 从生成器中创建数组
generator = (x**2 for x in range(5))
arr2 = np.fromiter(generator, dtype=float)
print(arr2)

输出:
                   在这里插入图片描述

在这个示例中,我们从一个列表和一个生成器中分别创建了数组。通过指定数据类型和可迭代对象,fromiter() 函数将可迭代对象中的元素转化为数组。需要注意的是,默认情况下会读取可迭代对象中的所有元素,但可以通过设置 count 参数来限制读取的元素数量。


4. empty_like() 函数

empty_like() 是 NumPy 库中的一个函数,用于创建一个与给定数组具有相同形状和数据类型的空数组。
empty_like() 的基本语法如下:

numpy.empty_like(prototype, dtype=None, order='K', subok=True)

参数说明:

  • prototype: 输入的数组或类数组对象,用于确定新数组的形状和数据类型。
  • dtype: 可选参数,输出数组的数据类型。如果不指定,则继承自输入数组的数据类型。
  • order: 可选参数,指定数组在内存中的布局方式。可以是’C’(按行)、‘F’(按列)或’A’(原始顺序,默认)。
  • subok: 可选参数,是否允许子类继承输入数组的类型。默认为 True。

示例使用:

import numpy as np# 创建一个与给定数组形状相同的空数组
arr1 = np.array([1, 2, 3, 4])
empty_array1 = np.empty_like(arr1)
print(empty_array1)
print("-" * 20)# 创建一个与给定二维数组形状相同的空数组
arr2 = np.array([[1, 2, 3, 5], [4, 6, 8, 9]])
empty_array2 = np.empty_like(arr2)
print(empty_array2)

输出:
                在这里插入图片描述

在这个示例中,我们使用 empty_like() 函数创建了两个空数组。第一个数组的形状与给定一维数组 arr1 相同,第二个数组的形状与给定二维数组 arr2 相同。这些空数组不会被初始化为任何具体值,而是根据给定的形状和数据类型分配了相应的内存空间。


5. zeros_like() 函数

zeros_like() 是 NumPy 库中的一个函数,用于创建一个与给定数组具有相同形状和数据类型的全零数组。

zeros_like() 的基本语法如下:

numpy.zeros_like(prototype, dtype=None, order='K', subok=True)

参数说明:

  • prototype: 输入的数组或类数组对象,用于确定新数组的形状和数据类型。
  • dtype: 可选参数,输出数组的数据类型。如果不指定,则继承自输入数组的数据类型。
  • order: 可选参数,指定数组在内存中的布局方式。可以是’C’(按行)、‘F’(按列)或’A’(原始顺序,默认)。
  • subok: 可选参数,是否允许子类继承输入数组的类型。默认为 True。

示例使用:

import numpy as np# 创建一个与给定一维数组形状相同的全零数组
arr1 = np.array([1, 2, 3])
zeros_array1 = np.zeros_like(arr1)
print(zeros_array1)
print("-" * 20)# 创建一个与给定二维数组形状相同的全零数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
zeros_array2 = np.zeros_like(arr2)
print(zeros_array2)

输出:
               在这里插入图片描述

在这个示例中,我们使用 zeros_like() 函数创建了两个全零数组。第一个数组的形状与给定一维数组 arr1 相同,第二个数组的形状与给定二维数组 arr2 相同。这些全零数组的元素都被初始化为 0,并且与给定数组具有相同的形状和数据类型。


6. ones_like() 函数

ones_like() 是 NumPy 库中的一个函数,用于创建一个与给定数组具有相同形状和数据类型的全一数组。

ones_like() 的基本语法如下:

numpy.ones_like(prototype, dtype=None, order='K', subok=True)

参数说明:

  • prototype: 输入的数组或类数组对象,用于确定新数组的形状和数据类型。
  • dtype: 可选参数,输出数组的数据类型。如果不指定,则继承自输入数组的数据类型。
  • order: 可选参数,指定数组在内存中的布局方式。可以是’C’(按行)、‘F’(按列)或’A’(原始顺序,默认)。
  • subok: 可选参数,是否允许子类继承输入数组的类型。默认为 True。

示例使用:

import numpy as np# 创建一个与给定一维数组形状相同的全一数组
arr1 = np.array([1, 2, 3])
ones_array1 = np.ones_like(arr1)
print(ones_array1)
print("-" * 20)# 创建一个与给定二维数组形状相同的全一数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
ones_array2 = np.ones_like(arr2)
print(ones_array2)

输出:
               在这里插入图片描述

在这个示例中,我们使用 ones_like() 函数创建了两个全一数组。第一个数组的形状与给定一维数组 arr1 相同,第二个数组的形状与给定二维数组 arr2 相同。这些全一数组的元素都被初始化为 1,并且与给定数组具有相同的形状和数据类型。


7. full_like() 函数

在NumPy库中, full_like() 函数,它可以用来创建一个与给定数组具有相同形状和数据类型的填充值数组。

full_like() 的基本语法如下:

numpy.full_like(prototype, fill_value, dtype=None, order='K', subok=True)

参数说明:

  • prototype:输入的数组或类数组对象,用于确定新数组的形状和数据类型。
  • fill_value:要填充的值。
  • dtype:可选参数,输出数组的数据类型。如果不指定,则继承自输入数组的数据类型。
  • order:可选参数,指定数组在内存中的布局方式。可以是’C’(按行)、‘F’(按列)或’A’(原始顺序,默认)。
  • subok:可选参数,是否允许子类继承输入数组的类型。默认为 True。

示例使用:

import numpy as np# 创建一个与给定一维数组形状相同的填充值数组
arr1 = np.array([1, 2, 3])
filled_array1 = np.full_like(arr1, fill_value=5)
print(filled_array1)
print("-" * 20)# 创建一个与给定二维数组形状相同的填充值数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
filled_array2 = np.full_like(arr2, fill_value=9)
print(filled_array2)

输出:
               在这里插入图片描述
在这个示例中,我们使用 full_like() 函数创建了两个填充值数组。第一个数组的形状与给定一维数组 arr1 相同,并且填充值为 5。第二个数组的形状与给定二维数组 arr2 相同,并且填充值为 9。这些填充值数组的元素都被初始化为指定的填充值,并且与给定数组具有相同的形状和数据类型。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/257112.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序访问不了阿里云oss图片链接解决办法

以下都有可能导致访问不了oss图片 1.小程序没有加访问白名单 这个需要前端搞,加上白名单,如果是域名加域名白名单,ip的话加ip白名单 2.阿里云设置域名白名单 打开bucket列表,选择对应的bucket 配置这个白名单,配置好以后,开发者工具可以预览了,手机端预览不了,查看自己的路…

Python---time库

目录 时间获取 时间格式化 程序计时 time库包含三类函数: 时间获取:time() ctime() gmtime() 时间格式化:strtime() strptime() 程序计时:sleep() perf_counter() 下面逐一介绍&#…

如何解决5G基站高能耗问题?

安科瑞 须静燕 截至2023年10月,我国5G基站总数达321.5万个,占全国通信基站总数的28.1%。然而,随着5G基站数量的快速增长,基站的能耗问题也逐渐日益凸显,基站的用电给运营商带来了巨大的电费开支压力,降低5…

delphi android打开外部文件,报错android.os.FileUriExposedException解决方法

Android 7.0强制启用了被称作 StrictMode的策略,带来的影响就是你的App对外无法暴露file://类型的URI了。 如果你使用Intent携带这样的URI去打开外部App(比如:打开系统相机拍照),那么会抛出FileUriExposedException异常。 Delphi 为Android…

深入探讨403错误产生的根本原因,并提供几种解决403错误方法

在互联网的日常使用过程中,我们可能会遇到一些难以理解的错误代码,其中之一就是403错误。这个错误通常表现为"403 Forbidden"或"HTTP Status 403",它指的是访问资源被服务器理解但拒绝授权。换句话说,服务器可…

智能优化算法应用:基于爬行动物算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于爬行动物算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于爬行动物算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.爬行动物算法4.实验参数设定5.算法结果6.参考…

python的extend函数详解

文章目录 语法功能示例例1:添加列表例2:添加元组例3:添加集合例4:添加字典(只添加键)例5:添加字符串例6:混合类型扩展例7:扩展空列表或不可迭代对象 注意事项&#xff1a…

在VSCode中运行Python脚本文件时如何传参

以下实验所处的操作系统环境说明: OS版本MacOSMonterey 12.1VSCodeOctober 2023 (version 1.84.2) 一、背景 在 VSCode 中写好 Python 脚本后,如果要运行起来,可以怎么做呢? 一般有以下几种方式: 1、直接在 VSCode…

SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码(一)——环境准备及项目配置

作者:超图研究院技术支持中心-于丁1 SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码(一)——环境准备及项目配置   三维场景框选是一种在三维空间中进行选择和操作的功能,它可以让使用者通过鼠标拖动来创建一个矩形…

【数据结构】C语言结构体详解

目录 前言 一、结构体的定义 二、定义结构体变量 三、结构体变量的初始化 四、使用typedef声明新数据类型名 五、指向结构体变量的指针 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 &#x1f4a1…

程序管理与SELinux初探-理论篇

工作管理概念(job control) 1前台:你可以控制与执行命令的这个环境称为前台 2后台:可以自行运行的工作,你无法ctrlc终止它,可以使用bg/fg调用该工作 3后台中执行的进程不能等待terminal/shell的输入 sui…

2.1 网络编程-多用户通信系统(用户登录、拉取在线用户、无异常退出)

文章目录 一、多用户通信系统1.1 介绍1.2 公共类1.2.1 封装消息类1.2.2 用户类1.2.3 消息类型类1.2.4 控制台读取内容 二、用户登录2.1 客户端2.1.1 菜单界面 QQView2.1.2 验证用户UserClientService2.1.3 线程类 ClientConnectServerThread2.1.4 线程集合类 2.2 服务端2.2.1 服…