根据既定数组创建数组的方法汇总 (第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.mfbz.cn/a/227032.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2021年第十届数学建模国际赛小美赛A题气道阻力的评估解题全过程文档及程序

2021年第十届数学建模国际赛小美赛 A题 气道阻力的评估 原题再现: 气道阻力的定义是通过肺气道产生单位气流所需的经肺压力的变化。更简单地说,它是嘴和肺泡之间的压力差,除以气流。影响气道阻力的因素是多方面的,我们需要探讨这…

python 数据分析

数据分析 数据分析是指用适当的方法对收集的数据进行分析,提取有用信息并且形成结论. 广义的数据分析包括狭义的数据分析和数据挖掘.狭义的数据分析是指根据目的,采用对比分析,分组分析,交叉分析,回归分析等分析方法,对数据进行分析和处理,得到特征统计量的过程.数据挖掘是指…

20231207给NanoPC-T4(RK3399)开发板刷Android12的挖掘机方案的LOG

20231207给NanoPC-T4(RK3399)开发板刷Android12的挖掘机方案的LOG 2023/12/7 23:50 SDK:rk356x_android12_220722.tgz 只修改DTS的DTC部分就【直接】可以跑NanoPC-T4 参考资料: http://www.friendlyelec.com.cn/agent.asp http://www.friendlyelec.com.c…

[FPGA 学习记录] 快速开发的法宝——IP核

快速开发的法宝——IP核 文章目录 1 IP 核是什么2 为什么要使用 IP 核3 IP 核的存在形式4 IP 核的缺点5 Quartus II 软件下 IP 核的调用6 Altera IP 核的分类 在本小节当中,我们来学习一下 IP 核的相关知识。 IP 核在 FPGA 开发当中应用十分广泛,它被称为…

Spark RDD惰性计算的自主优化

原创/朱季谦 RDD(弹性分布式数据集)中的数据就如final定义一般,只可读而无法修改,若要对RDD进行转换或操作,那就需要创建一个新的RDD来保存结果。故而就需要用到转换和行动的算子。 Spark运行是惰性的,在…

UE Http笔记

c参考链接 UE4 开发如何使用 Http 请求_wx61ae2f5191643的技术博客_51CTO博客 虚幻引擎:UEC如何对JSON文件进行读写?-CSDN博客 UE4 HTTP使用 官方免费插件 VaRest 在代码插件创建的VaRest - 虚幻引擎商城 UE5在蓝图中使用Varest插件Get,Post两种常见请求方式…

C# Solidworks二次开发:三种获取SW设计结构树的方法-第二讲

今天这篇文章是接上一篇文章的,主要讲述的是获取SW设计结构树节点的第二种方法。 这个方法获取节点的逻辑是先获取最顶层节点,然后再通过获取顶层节点的子节点一层一层的把所有节点都找出来,也就是需要递归。想要用这个方法就要了解下面几个…

常见的校验码

在计算机领域中,校验码是一种用于检测或纠正数据传输或存储中错误的技术。校验码通常通过在数据中添加一些冗余信息来实现。其主要目的是确保数据的完整性和准确性。 奇偶校验码(Parity Check) 奇校验: 确保数据中二进制位中的1的…

JWT安全及WebGoat靶场

JWT 安全 cookie(放在浏览器) cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。 cookie 由服务器生成,发送给浏览器,浏览器把 cookie 以 kv 形式保存到某个目录下的…

文件同步及实现简单监控

1. 软件简介 rsync rsync 是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程 数据同步备份的优秀工具。在同步备份数据时,默认情况下,Rsync 通过其 独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文 件或…

CentOS上配置和管理HTTP服务器的工具和实用程序

在CentOS系统上,有多个工具和实用程序可以帮助你配置和管理HTTP服务器。以下是一些常用的工具和实用程序: Apache HTTP服务器: Apache是CentOS上最常用的HTTP服务器之一。它是一个开源的Web服务器软件,具有高度的可配置性和可扩…

在jupyter notebook中修改其他文件的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

dell服务器安装PERCCLI

因在linux 系统中无法查看系统磁盘的raid级别,也无法得知raid状态,需要安装额外的包来监控,因是dell服务器,就在dell网站中下载并安装 1、下载链接:驱动程序和下载 | Dell 中国https://www.dell.com/support/home/zh-…

ELK(四)—els基本操作

目录 elasticsearch基本概念RESTful API创建非结构化索引(增)创建空索引(删)删除索引(改)插入数据(改)数据更新(查)搜索数据(id)&…

查看端口号是否被占用

windows10查看端口号是否被占用及解除占用的常用命令 netstat -ano:查看所有端口号占用情况 netstat -ano |findstr “XXX”:查看端口号为XXX的占用情况,如下: 得到进程号为12160的进程正在占用本地的9090端口号(如果只…

Python+requests+unittest+excel实现接口自动化测试框架

在刚刚进入测试行业的时候,最开始也是做功能测试,我想很多伙伴和我一样,觉得自动化测试都很高端,很神秘。迫不及待的想去学习作自动化测试。 以前比较常用数据库python做自动化,后面发现excel个人觉得更加适合&#x…

flex布局的flex为1到底是什么

参考博客:flex:1什么意思_公孙元二的博客-CSDN博客 flex:1即为flex-grow:1,经常用作自适应布局,将父容器的display:flex,侧边栏大小固定后,将内容区flex:1,内…

算术运算(这么简单?进来坐坐?)

先热热身 算术运算,也称为四则运算,包括加法、减法、乘法和除法。此外,算术运算还包括乘方和开方。 在算术中,加减被视为一级运算,乘除被视为二级运算,乘方和开方被视为三级运算。在一道算式中,…

GDPU 数据结构 天码行空13

文章目录 一、【实验目的】二、【实验内容】三、实验源代码四、实验结果五、实验总结 一、【实验目的】 (1) 理解插入排序算法的实现过程; (2)理解不同排序算法的时间复杂度及适用环境; (3)了解算法性能…

华为数通---配置Smart Link负载分担案例

定义 Smart Link,又叫做备份链路。一个Smart Link由两个接口组成,其中一个接口作为另一个的备份。Smart Link常用于双上行组网,提供可靠高效的备份和快速的切换机制。 目的 下游设备连接到上游设备,当使用单上行方式时&#x…