python-numpy-常用函数详解

文章目录

  • 一、函数详解
    • np.empty(num_points)
    • np.zeros(shape, dtype=float, order='C')
    • np.tile(A, reps)
    • np.newaxis
    • numpy.stack(arrays, axis=0)
    • np.roll(a, shift, axis=None)
  • 二、实例
    • 矩阵进行扩展三行,使得每一行都与第一行相同
    • 二维数组每行减去不同的数

一、函数详解

np.empty(num_points)

用于创建一个指定大小的未初始化的数组的函数。该函数会返回一个指定大小的数组,但是数组的内容是未定义的,即数组中的元素可能是任意值。
参数说明:

  • num_points:指定数组的大小,可以是一个整数或元组
import numpy as np# 创建一个大小为5的未初始化数组
arr = np.empty(5)print(arr)# 输出结果可能会是类似于以下的内容(具体数值可能不同):
[1. 2. 3. 4. 5.]

np.zeros(shape, dtype=float, order=‘C’)

NumPy中用于创建指定形状的全零数组的函数。该函数接受一个表示数组形状的元组作为参数,并返回一个对应形状且所有元素都为零的数组。
参数解释:

  • shape:表示数组形状的元组,如(2, 3)表示2行3列的数组
  • dtype:可选参数,指定数组的数据类型,默认为float
  • order:可选参数,指定数组元素在内存中的存储顺序,'C’表示按行存储,'F’表示按列存储
import numpy as np# 创建一个3x4的全零数组
zeros_array = np.zeros((3, 4))print(zeros_array)输出结果:
array([[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]])

np.tile(A, reps)

用于在不同维度上复制数组。具体来说,np.tile(A, reps)会将数组A沿各个维度复制指定的次数,形成一个新的数组。
参数解释:

  • A:要复制的数组
  • reps:指定每个维度上复制的次数,可以是一个整数或一个元组。如果reps是一个整数n,则表示沿着每个维度将数组复制n次;如果reps是一个元组(m, n),则表示沿着每个维度将数组复制m次沿第一个轴,n次沿第二个轴,依此类推。
import numpy as np# 创建一个数组
arr = np.array([1, 2, 3])# 将数组沿着第一个轴复制3次
result1 = np.tile(arr, 3)print(result1)# 输出结果为:
[1 2 3 1 2 3 1 2 3]A = np.array([[1, 2], [3, 4]])
result2 = np.tile(A, (2, 3))print(result2)# 输出结果为:
array([[1, 2, 1, 2, 1, 2],[3, 4, 3, 4, 3, 4],[1, 2, 1, 2, 1, 2],[3, 4, 3, 4, 3, 4]])

np.newaxis

一种在NumPy中用于改变数组维度的常见操作
当使用np.newaxis时,它实际上是一个None对象的别名,用于增加数组的维度。通过在切片操作中使用np.newaxis,可以改变数组的维度,从而方便进行矩阵运算。

import numpy as np# 创建一个一维数组
arr = np.array([1, 2, 3, 4])# 使用np.newaxis增加一个新的轴
new_arr = arr[:, np.newaxis]print(new_arr)
print(new_arr.shape)输出结果:
array([[1],[2],[3],[4]])
(4, 1)

numpy.stack(arrays, axis=0)

用于沿着新的轴堆叠数组序列。具体来说,np.stack 可以将多个数组沿着指定的轴(axis)进行堆叠,生成一个新的数组。

参数说明:

  • arrays:要堆叠的数组序列,可以是多个数组组成的列表或元组。
  • axis:指定沿着哪个轴进行堆叠。默认值为 0,表示沿着新的第一个轴进行堆叠。
import numpy as nparr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])stacked_array = np.stack((arr1, arr2))
print(stacked_array)输出结果:
[[1 2 3][4 5 6]]

np.roll(a, shift, axis=None)

用于对数组进行循环移位操作的函数。该函数可以将数组沿指定轴进行循环移位,即将数组的元素按照指定的偏移量进行重新排列。
参数说明:

  • a:输入数组
  • shift:循环移位的偏移量,可以是正数或负数
  • axis:指定沿着哪个轴进行循环移位操作,如果不指定则将数组展平后进行移位操作
import numpy as np# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])# 对数组进行循环右移两位
result = np.roll(arr, 2)print(result)# 输出结果为:
[4 5 1 2 3]

二、实例

矩阵进行扩展三行,使得每一行都与第一行相同

import numpy as np# 定义原始矩阵
matrix = np.array([[1, 2, 3]])# 复制第一行,扩展为3行
extended_matrix = np.tile(matrix, (3, 1))print(extended_matrix)输出结果:
[[1 2 3][1 2 3][1 2 3]]

二维数组每行减去不同的数

import numpy as np# 创建输入数组
input_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 创建要减去的数组
to_subtract = np.array([1, 2, 3])# 使用广播功能实现减法操作
result = input_array - to_subtract[:, np.newaxis]print(result)输出结果为:
[[0 1 2][2 3 4][4 5 6]]

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

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

相关文章

蓝桥杯2016年第十三届省赛真题-承压计算

一、题目 煤球数目 有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形&#x…

将当前docker的镜像进行复制并加载为一个新的容器

一.前言 在实际操作中,为了便于docker镜像环境和服务配置的迁移,我们有时需要将已在测试环境主机上完成一系列配置的docker镜像或运行中的容器镜像导出,并传输到生产或其他目标环境主机上运行。为此,本文主要聚焦于如何实现docke…

ArcGIS Pro横向水平图例

终于知道ArcGIS Pro怎么调横向图例了! 简单的像0一样 旋转,左转右转随便转 然后调整图例项间距就可以了,参数太多就随便试,总有一款适合你! 要调整长度,就调整图例块的大小。完美! 好不容易…

OSCP靶场--pc

OSCP靶场–pc 考点(CVE-2022-35411[rpc漏洞chisel端口转发]) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap -Pn -sC -sV 192.168.178.210 --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-28 04:07 EDT Nmap scan rep…

StarRocks实战——多点大数据数仓构建

目录 前言 一、背景介绍 二、原有架构的痛点 2.1 技术成本 2.2 开发成本 2.2.1 离线 T1 更新的分析场景 2.2.2 实时更新分析场景 2.2.3 固定维度分析场景 2.2.4 运维成本 三、选择StarRocks的原因 3.1 引擎收敛 3.2 “大宽表”模型替换 3.3 简化Lambda架构 3.4 模…

centos node puppeteer chrome报错问题

原因:缺少谷歌依赖包,安装以下即可 yum install atkyum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf…

计算属性缓存 vs 方法

你可能注意到我们在表达式中像这样调用一个函数也会获得和计算属性相同的结果&#xff1a; <p>{{ calculateBooksMessage() }}</p> // 组件中 function calculateBooksMessage() {return author.books.length > 0 ? Yes : No } 若我们将同样的函数定义为一个…

C#WPF控件大全

本文列出WPF控件大全,点击可以进入详情页查看。 列表如下: AccessText用下划线来指定用作访问键的字符。 ActivatingKeyTipEventArgs为 ActivatingKeyTip 事件提供数据。

helm 部署 Kube-Prometheus + Grafana + 钉钉告警部署 Kube-Prometheus

背景 角色IPK8S 版本容器运行时k8s-master-1172.16.16.108v1.24.1containerd://1.6.8k8s-node-1172.16.16.109v1.24.1containerd://1.6.8k8s-node-2172.16.16.110v1.24.1containerd://1.6.8 安装 kube-prometheus mkdir -p /data/yaml/kube-prometheus/prometheus &&…

本地部署大模型的几种工具(上-相关使用)

目录 前言 为什么本地部署 目前的工具 vllm 介绍 下载模型 安装vllm 运行 存在问题 chatglm.cpp 介绍 下载 安装 运行 命令行运行 webdemo运行 GPU推理 ollama 介绍 下载 运行 运行不同参数量的模型 存在问题 lmstudio 介绍 下载 使用 下载模型文件…

TheMoon 恶意软件短时间感染 6,000 台华硕路由器以获取代理服务

文章目录 针对华硕路由器Faceless代理服务预防措施 一种名为"TheMoon"的新变种恶意软件僵尸网络已经被发现正在侵入全球88个国家数千台过时的小型办公室与家庭办公室(SOHO)路由器以及物联网设备。 "TheMoon"与“Faceless”代理服务有关联&#xff0c;该服务…

深度学习每周学习总结P3(天气识别)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 数据链接 提取码&#xff1a;o3ix 目录 0. 总结1. 数据导入部分数据导入部分代码详解&#xff1a;a. 数据读取部分a.1 提问&#xff1a;关…

GPT-1原理-Improving Language Understanding by Generative Pre-Training

文章目录 前言提出动机模型猜想模型提出模型结构模型参数 模型预训练训练的目标训练方式训练参数预训练数据集预训练疑问点 模型微调模型输入范式模型训练微调建议微调疑问点 实验结果分析 前言 首先想感慨一波 这是当下最流行的大模型的的开篇之作&#xff0c;由OpenAI提出。…

后端返回文件流pdf 下载

##1 import download from downloadjs //这个res是后台返回的文件流 download((new Blob([res])), contract.pdf, application/pdf)方法2 a标签下载 let pdfContent res;const blob new Blob([pdfContent], { type: "application/pdf"});const url window.URL.cr…

uniapp调用腾讯图形验证码,兼容h5、APP(安卓)

因项目要兼容安卓APP&#xff0c;所以使用webview做成了一个组件 新建hybrid文件夹&#xff0c;创建要在webview引入的html文件 <!DOCTYPE html> <html><head><meta charset"utf-8" /><meta name"viewport"content"widt…

牛客NC26 括号生成【中等 递归 Java,Go,PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/c9addb265cdf4cdd92c092c655d164ca 思路 答案链接&#xff1a;https://www.lintcode.com/problem/427/solution/16924 参考答案Java import java.util.*;public class Solution {/*** 代码中的类名、方法名、参…

如何在Apache Arrow中定位与解决问题

如何在apache Arrow定位与解决问题 最近在执行sql时做了一些batch变更&#xff0c;出现了一个 crash问题&#xff0c;底层使用了apache arrow来实现。本节将会从0开始讲解如何调试STL源码crash问题&#xff0c;在这篇文章中以实际工作中resize导致crash为例&#xff0c;引出如何…

I/O模型的一些理解

I/O模型的一些理解 一些基本的概念同步阻塞、同步非阻塞、异步阻塞、异步非阻塞总结概念 I/O模型一些例子 从源头解释从TCP发送数据的流程说起阻塞I/O | 非阻塞I/OI/O多路复用信号驱动I/O异步I/O再谈IO模型里面的同步异步 参考连接 参考链接 参考链接 一些基本的概念 阻塞(b…

vue状态管理

使用pinia // stores/counter.js中 // ref就是state&#xff0c;computed就是getter&#xff0c;函数就是action&#xff0c;没有mutation了 import {ref,} from vue import {defineStore} from pinia export const useCounterStore defineStore(counter, () >{const ount…

ChatGPT与传统搜索引擎的区别:智能对话与关键词匹配的差异

引言 随着互联网的快速发展&#xff0c;信息的获取变得比以往任何时候都更加便捷。在数字化时代&#xff0c;人们对于获取准确、及时信息的需求愈发迫切。传统搜索引擎通过关键词匹配的方式为用户提供了大量的信息&#xff0c;然而&#xff0c;这种机械式的检索方式有时候并不…