Python NumPy(3):创建数组(2)

1 NumPy 从已有的数组创建数组

1.1 numpy.asarray

        numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个。

numpy.asarray(a, dtype = None, order = None)
参数描述
a任意形式的输入参数,可以是,列表, 列表的元组, 元组, 元组的元组, 元组的列表,多维数组
dtype数据类型,可选
order可选,有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。

        实例

import numpy as np

# 将列表转换为 ndarray:
x1 = [1, 2, 3]
a1 = np.asarray(x1)
print('列表转换:', a1)

# 将元组转换为 ndarray:
x2 = (1, 2, 3)
a2 = np.asarray(x2)
print('元组转换:', a2)

# 将元组列表转换为 ndarray:
x3 = [(1, 2, 3), (4, 5)]
a3 = np.asarray(x3, dtype=object)
print('元组列表转换:', a3)

# 设置了 dtype 参数:
x4 = [1, 2, 3]
a4 = np.asarray(x4, dtype=float)
print('设置dtype参数:', a4)

1.2 numpy.frombuffer

        numpy.frombuffer 用于实现动态数组。numpy.frombuffer 接受 buffer 输入参数,以流的形式读入转化成 ndarray 对象。

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

        注意:buffer 是字符串的时候,Python3 默认 str 是 Unicode 类型,所以要转成 bytestring 在原 str 前加上 b。

参数描述
buffer可以是任意对象,会以流的形式读入。
dtype返回数组的数据类型,可选
count读取的数据数量,默认为-1,读取所有数据。
offset读取的起始位置,默认为0。
import numpy as np

s = b'Hello World'
a = np.frombuffer(s, dtype='S1')
print(a)

1.3 numpy.fromiter

        numpy.fromiter 方法从可迭代对象中建立 ndarray 对象,返回一维数组。

numpy.fromiter(iterable, dtype, count=-1)
参数描述
iterable可迭代对象
dtype返回数组的数据类型
count读取的数据数量,默认为-1,读取所有数据
import numpy as np

# 使用 range 函数创建列表对象
list = range(5)
it = iter(list)

# 使用迭代器创建 ndarray
x = np.fromiter(it, dtype=float)
print(x)

2 NumPy 从数值范围创建数组

2.1 numpy.arange

        numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下:

numpy.arange(start, stop, step, dtype)

        根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray。

参数描述
start起始值,默认为0
stop终止值(不包含)
step步长,默认为1
dtype返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。
import numpy as np

# 生成 0 到 4 长度为 5 的数组:
x = np.arange(5)
print(x)

# 设置了 dtype
x = np.arange(5, dtype=float)
print(x)

# 设置了起始值、终止值及步长:
x = np.arange(10, 20, 2)
print(x)

2.2 numpy.linspace

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

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
参数描述
start序列的起始值
stop序列的终止值,如果endpointtrue,该值包含于数列中
num要生成的等步长的样本数量,默认为50
endpoint该值为 true 时,数列中包含stop值,反之不包含,默认是True。
retstep如果为 True 时,生成的数组中会显示间距,反之不显示。
dtypendarray 的数据类型

        以下实例用到三个参数,设置起始点为 1 ,终止点为 10,数列个数为 10。

import numpy as np

# 设置起始点为 1 ,终止点为 10,数列个数为 10。
a = np.linspace(1, 10, 10)
print('设置起始点为 1 ,终止点为 10,数列个数为 10。:', a)

# 设置元素全部是1的等差数列:
a = np.linspace(1, 1, 10)
print('设置元素全部是1的等差数列:', a)

# 将 endpoint 设为 false,不包含终止值(如果将 endpoint 设为 true,则会包含 20。):
a = np.linspace(10, 20, 5, endpoint=False)
print('将 endpoint 设为 false,不包含终止值:', a)

# 设置间距。
a = np.linspace(1, 10, 10, retstep=True)
print('设置间距。:', a)

# 拓展例子
b = np.linspace(1, 10, 10).reshape([10, 1])
print('拓展例子', b)

2.3 numpy.logspace

        numpy.logspace 函数用于创建一个于等比数列。格式如下:

np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

        base 参数意思是取对数的时候 log 的下标。

参数描述
start序列的起始值为:base ** start
stop序列的终止值为:base ** stop。如果endpointtrue,该值包含于数列中
num要生成的等步长的样本数量,默认为50
endpoint该值为 true 时,数列中中包含stop值,反之不包含,默认是True。
base对数 log 的底数。
dtypendarray 的数据类型
import numpy as np

# 默认底数是 10
a = np.logspace(1.0, 2.0, num=10)
print('默认底数是 10:', a)

# 将对数的底数设置为 2 :
a = np.logspace(0, 9, 10, base=2)
print('将对数的底数设置为 2 :', a)

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

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

相关文章

qml Dialog详解

1、概述 Dialog是QML(Qt Modeling Language)中用于显示对话框的组件,它提供了一个模态窗口,通常用于与用户进行重要交互,如确认操作、输入信息或显示警告等。Dialog组件具有灵活的布局和样式选项,可以轻松…

二维数组一

目录 输出数组的第k行数输出数组的第k列数输出数组的每一行的和输出数组的每列的平均值最高成绩各个科目成绩的平均分求最大梯形的面积入门靶心数奇偶统计 输出数组的第k行数 题目描述 输入一个二维数组,显示他的第k行的值。 输入 第一行 n,m两个整数&…

单片机内存管理剖析

一、概述 在单片机系统中,内存资源通常是有限的,因此高效的内存管理至关重要。合理地分配和使用内存可以提高系统的性能和稳定性,避免内存泄漏和碎片化问题。单片机的内存主要包括程序存储器(如 Flash)和数据存储器&a…

计算机网络 (61)移动IP

前言 移动IP(Mobile IP)是由Internet工程任务小组(Internet Engineering Task Force,IETF)提出的一个协议,旨在解决移动设备在不同网络间切换时的通信问题,确保移动设备可以在离开原有网络或子网…

线性回归、协同过滤、基于内容过滤、主成分分析(PCA)

线性回归 使用item特征用户打分标签线性回归训练,最小化成本函数,得到每个用户的参数 协同过滤 协同过滤基于一个核心假设:相似的用户会有相似的兴趣,因此可以通过分析相似用户历史行为,来预测当前用户可能感兴趣的i…

引领产品创新: 2025 年 PM 效能倍增法则

本文讲述 PM 如何利用 AI 做到效率倍增,非常有借鉴意义,故而翻译于此。 原文链接:https://www.news.aakashg.com/p/the-ai-pms-playbook 在产品圈有一个广为流传的说法: “每个产品经理都应该成为 AI 产品经理。” 这个观点有一…

vscode无法格式化go代码的问题

CTRLshiftp 点击Go:Install/Update Tools 点击全选,OK!

【外文原版书阅读】《机器学习前置知识》1.线性代数的重要性,初识向量以及向量加法

目录 ​编辑 ​编辑 1.Chapter 2 Why Linear Algebra? 2.Chapter 3 What Is a Vector? 个人主页:Icomi 大家好,我是Icomi,本专栏是我阅读外文原版书《Before Machine Learning》对于文章中我认为能够增进线性代数与机器学习之间的理解的…

对神经网络基础的理解

目录 一、《python神经网络编程》 二、一些粗浅的认识 1) 神经网络也是一种拟合 2)神经网络不是真的大脑 3)网络构建需要反复迭代 三、数字图像识别的实现思路 1)建立一个神经网络类 2)权重更新的具体实现 3&am…

SOME/IP--协议英文原文讲解1

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 一、SOM…

移动光猫怎么自己改桥接模式?

环境: 型号H3-8s 问题描述: 家里宽带用的是H3-8s 光猫,想改桥接模式。 解决方案: 1.默认管理员账号和密码: 账号:CMCCAdmin 密码:aDm8H%MdAWEB页面我试了登陆不了,显示错误 …

2D 超声心动图视频到 3D 心脏形状重建的临床应用| 文献速递-医学影像人工智能进展

Title 题目 2D echocardiography video to 3D heart shape reconstruction for clinicalapplication 2D 超声心动图视频到 3D 心脏形状重建的临床应用 01 文献速递介绍 超声心动图是心血管医学中一种至关重要且广泛应用的影像学技术,利用超声波技术捕捉心脏及其…

web端ActiveMq测试工具

如何用vue3创建简单的web端ActiveMq测试工具? 1、复用vue3模板框架 创建main.js,引入APP文件,createApp创建文件,并加载element插件,然后挂载dom节点 2、配置vue.config.js脚本配置 mport { defineConfig } from "vite&qu…

STM32 GPIO配置 点亮LED灯

本次是基于STM32F407ZET6做一个GPIO配置,实现点灯实验。 新建文件 LED.c、LED.h文件,将其封装到Driver文件中。 双击Driver文件将LED.c添加进来 编写头文件,这里注意需要将Driver头文件声明一下。 在LED.c、main.c里面引入头文件LED.h LED初…

DroneXtract:一款针对无人机的网络安全数字取证工具

关于DroneXtract DroneXtract是一款使用 Golang 开发的适用于DJI无人机的综合数字取证套件,该工具可用于分析无人机传感器值和遥测数据、可视化无人机飞行地图、审计威胁活动以及提取多种文件格式中的相关数据。 功能介绍 DroneXtract 具有四个用于无人机取证和审…

用Python和PyQt5打造一个股票涨幅统计工具

在当今的金融市场中,股票数据的实时获取和分析是投资者和金融从业者的核心需求之一。无论是个人投资者还是专业机构,都需要一个高效的工具来帮助他们快速获取股票数据并进行分析。本文将带你一步步用Python和PyQt5打造一个股票涨幅统计工具,不…

大模型正确调用方式

1、ollama 安装 curl -fsSL https://ollama.com/install.sh | sh 如果是AutoDl服务器,可以开启学术加速。 source /etc/network_turbo 本次使用腾讯云Cloud Studio,所以已经安装好了 Ollama 2、启动 ollama run 模型的名字 ollama serve # 开启服务 olla…

计算机网络 (62)移动通信的展望

一、技术发展趋势 6G技术的崛起 内生智能:6G将强调自适应网络架构,通过AI驱动的智能算法提升通信能力。例如,基于生成式AI的6G内生智能架构将成为重要研究方向,实现低延迟、高效率的智能通信。信息编码与调制技术:新型…

KVM/ARM——基于ARM虚拟化扩展的VMM

1. 前言 ARM架构为了支持虚拟化做了些扩展,称为虚拟化扩展(Virtualization Extensions)。原先为VT-x创建的KVM(Linux-based Kernel Virtual Machine)适配了ARM体系结构,引入了KVM/ARM (the Linux ARM hypervisor)。KVM/ARM没有在hypervisor中引入复杂的…

python:taichi 模拟一维波场

在 Taichi 中模拟一维波场,通常是利用 Taichi 编程语言的特性来对一维空间中的波动现象进行数值模拟,以下是相关介绍: 原理基础 波动方程:一维波动方程的一般形式为 ,其中 u(x,t) 表示在位置x 和时间t 处的波的状态&…