numpy的基本操作

1.常用方法创建array

print(np.array([1, 2, 3], dtype="f4"))# 32位浮点型

print(np.array([1.5, 2.2, 3]))# 默认浮点型

print(np.array([1, 2, 3, 4, 5], ndmin=3))# 3维数组

print(np.array([range(i, i + 5) for i in [1, 2, 3]]))#

print(np.zeros(shape=[5, 5], dtype="i4"))# 5x5的0数组

print(np.ones(shape=[5, 5], dtype="i4"))# 5x5的1数组

print(np.array(["1.1", "2.2", "3.3"], dtype="S").astype("f4"))# 字符串数组转为浮点型数组

# 所有非零元素的索引
a=np.nonzero(np.array([1, 0, 2, 3, 0, 4]))#
print(a)#(array([0, 2, 3, 5], dtype=int64),)
print(a[0])# [0 2 3 5]

print(np.full(shape=[5, 5], fill_value=1.5, dtype=np.float_))# 5x5的1.5数组


print(np.eye(10))# 10x10的单位阵


# 数组元素为随机值,因为它们未初始化


print(np.empty(shape=(5, 5)))# 5x5的未初始化数组


print(np.linspace(1, 10, 5))# 返回num个等间距的样本

 

 


 

print(np.random.random((5, 5)))# 随机生成5行5列

# 生成[0, 10) 且 3行3列的随机数
# 生成的数据包括起始值和结束值,但不包括结束值本身。
print(np.random.randint(0, 10, (3, 3)))# 3x3的随机整数数组, 值在[0, 10)

print(np.random.normal(0, 1, (3, 3)))# 3x3的正态分布随机数, 均值为0, 方差为1

print(np.array([1, 2, 3]).itemsize)# 元素字节大小, 32位=4字节

2. Numpy 索引和切片 

在Python中,切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。
普通索引只取出序列中一个下标对应的元素,而切片取出序列中一个范围对应的元素

2.1普通索引

一维的索引
a1 = np.array([1, 2, 3, 4])
print(a1)
print(a1[0])
print(a1[2])

二维的索引
a2 = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
print(a2[2])
print(a2[2, 1])
print(a2[:, 2])# 第2列元素,行索引省略表示所有行


a3 = np.array([
    [[10, 11, 12], [13, 14, 15], [16, 17, 18]],
    [[20, 21, 22], [23, 24, 25], [26, 27, 28]],
    [[30, 31, 32], [33, 34, 35], [36, 37, 38]]
])

# 打印数组 a3 的形状
print(a3.shape)  

# 打印 a3 的第三层(索引为 2)
print(a3[2])  

# 打印 a3 第三层的第一层(索引为 2,0)
print(a3[2, 0])  

# 打印 a3 第三层第一层的第二个元素(索引为 2,0,1)
print(a3[2, 0, 1])  

# 打印 a3 所有层的第二层的第三个元素(索引为 :,1,2)
print(a3[:, 1, 2])  

# 打印 a3 第二层的第三层(索引为 1,2)
print(a3[1, 2])  

# 打印 a3 第一层的所有元素(索引为 0,:)
print(a3[0, :])  

# 打印 a3 第一层的所有第二层元素(索引为 0,:,1)
print(a3[0, :, 1])  

# 打印 a3 所有层的第二层(索引为 :,1)
print(a3[:, 1])  

# 打印 a3 所有层的第二层的第一个元素(索引为 :,1,0)
print(a3[:, 1, 0])  

# 打印 a3 所有层的第二层和第三层的第一个元素(索引为 :,1:3,0)
print(a3[:, 1:3, 0])  

# 打印 a3 所有层的前两层的前两层(索引为 :,:2,:2)
print(a3[:, :2, :2])  

# 打印 a3 第二层的第二层和第三层的第二个元素(索引为 1:2,1:3,1)
print(a3[1:2, 1:3, 1])  

print(a3[:, 0, 1])  # 打印所有层的第一层的第二个元素

print(a3[:, ::2, 1])  # 打印所有层的隔一个元素的层的第二层元素

print(a3[:, [0, 2], [0, 1]])  # 以特定索引组合打印元素

2.2索引可以是array数组

data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
mask1 = np.array([True, False, True, False, True, False, True, False, True],dtype=np.bool_)
index = np.array([1, 0, 1, 0, 1, 0, 1, 0, 1], dtype="i1")
print(data[mask1])# 索引为True的元素

# index表示索引 将data对应的索引选择出来
print(data[index])# 索引为1,0,1,0的元素

data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
index = np.array([2, 4, 1, 0], dtype="i1")
print(data[index])# 索引为2,4,1,0的元素

2.3高级索引
 

arr = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]])
# 使用整数数组索引选择元素
indices = np.array([0, 2])
result = arr[:, indices]# 选择第0列和第2列,即第0行和第2行
#result = arr[:, [0, 2]]#与上一行等价
print(result)

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

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

相关文章

从开源EPR产品Odoo学习

前言 一个先进、敏捷、经济高效、可快速扩展的Odoo免费开源企业信息化解决方案,让企业获得适应未来发展的长期创新和增长能力。 Odoo 的免费开源模式 让我们可利用无数开发人员和业务专家,在短短数年内,打造数百款应用。凭借强大的技术基础,Odoo 的框架是非常独特且优秀的…

LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码

LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码 LIMS实验室信息管理系统,是一种基于计算机硬件和数据库技术,集多个功能模块为一体的信息管理系统。该系统主…

前后端分离对于后端来说,是利好还是利弊呢?

前后端分离已经成为前端开发的主流模式,这种模式极大的解放了后端,让后端人员不再即当爹又当妈了,那么这种模式对于后端来说是利好还是利弊呢,如何趋利避害呢,贝格前端工场为大家分享一下。 一、什么前后端分离的开发…

Redis的一点入门了解

Redis NoSql概述 1、单机MySQL的时代 90年代,一个网站的访问量一般不会太大,单个数据库完全足够应付,技术上更多的会去使用静态页面html,对此服务器压根没多少压力; 但即使在这样的情况下,也会存在着一些…

【Linux】程序地址空间之动态库的加载

我们先进行一个整体轮廓的了解,随后在深入理解细节。 在动态库加载之前还要说一下程序的加载,因为理解了程序的加载对动态库会有更深的理解。 轮廓: 首先,不管是程序还是动态库刚开始都是在磁盘中的,想要执行对应的可…

IT入门知识博客文章大纲第一部分《IT基础知识》(1/10)

目录 IT入门知识博客文章大纲第一部分《IT基础知识》(1/10) 1.引言 2.第一部分:IT基础知识 2.1 计算机硬件 CPU:计算机的心脏 内存:数据的临时居所 存储设备:数据的长期仓库 输入输出设备&#xff1…

PostgreSQL基础(十四):PostgreSQL的数据迁移

文章目录 PostgreSQL的数据迁移 PostgreSQL的数据迁移 PostgreSQL做数据迁移的插件非常多,可以从MySQL迁移到PostgreSQL也可以基于其他数据源迁移到PostgreSQL。 这种迁移的插件很多,这里只说一个,pgloader(非常方便&#xff0…

Coursera耶鲁大学金融课程:Financial Markets 笔记Week 01

Financial Markets 本文是学习 https://www.coursera.org/learn/financial-markets-global这门课的学习笔记 这门课的老师是耶鲁大学的Robert Shiller https://en.wikipedia.org/wiki/Robert_J._Shiller Robert James Shiller (born March 29, 1946)[4] is an American econ…

SQL Server Management Studio (SSMS) 20.1 - 微软数据库管理工具

SQL Server Management Studio (SSMS) 20.1 - 微软数据库管理工具 请访问原文链接:https://sysin.org/blog/ssms/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 笔者注:SQL Server 2014 及之前版本内置…

基于负相关误差函数的4集成BP神经网络matlab建模与仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ...............................................................…

植物大战僵尸杂交版 v2.0.88 mac版 Plants vs. Zombies 杂交版下载

特别注意:该游戏最低系统要求为macOS Sonoma 14.X,低于此系统版本的请勿下载! 游戏介绍 植物大战僵尸杂交版是由B站UP主“潜艇伟伟迷”制作的一款结合了《植物大战僵尸》原有元素与创新玩法的游戏。这款游戏以其独特的“杂交”植物概念在B站…

等待 chrome.storage.local.get() 完成

chrome.storage.local.get() 获取存储处理并计数,内部计数正常,外部使用始终为0,百思不得其解。 如何在继续执行之前等待异步chrome.storage.local.get()完成-腾讯云开发者社区-腾讯云 (tencent.com) 原来我忽略了异步问题,最简…

mybatis中SQL语句运用总结

union 连接查询 连接两个表后会过滤掉重复的值 <resultMap id"BaseResultMap" type"com.sprucetec.pay.etl.model.BillDetail"><id column"id" jdbcType"INTEGER" property"id"/><result column"pay_…

SSM 基于大数据技术的创业推荐系统-计算机毕业设计源码02979

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…

cocos creator如何使用cryptojs加解密(及引入方法)

cocos creator如何使用cryptojs加解密&#xff08;及引入方法&#xff09; 如果想转请评论留个言并注明原博 Sclifftop 13805064305 阿浚 cocos creator如何使用cryptojs加解密&#xff08;及引入方法&#xff09; 步骤 获取库 1. npm install crypto-js -g&#xff0c;加不加…

除了英伟达,这些AI概念公司在2024年还有巨大的投资价值(五)

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经在英伟达还没拆股前&#xff0c;股价还是100多美元时&#xff08;2019年&#xff09;就曾多次公开发布文章呼吁大家关注并投资英伟达&#xff0c;以下是猛兽财经在2019年到2022年间公开发布的关于英伟达的部分文…

ARM32开发--PWM高级定时器

目录 文章目录 前言 目标 学习内容 需求 高级定时器通道互补输出 开发流程 通道配置 打开互补保护电路 完整代码 练习题 总结 前言 在嵌入式软件开发中&#xff0c;PWM&#xff08;脉冲宽度调制&#xff09;技术被广泛应用于控制各种电子设备的亮度、速度等参数。…

训练营第三十八天 | 309.最佳买卖股票时机含冷冻期动态规划系列七总结714.买卖股票的最佳时机含手续费股票问题总结篇!

309.最佳买卖股票时机含冷冻期 力扣题目链接(opens new window) 给定一个整数数组&#xff0c;其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#x…

最实用的 LeetCode 刷题指南

暑期实习基本结束了&#xff0c;校招即将开启。当前就业环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;岗位在变少&#xff0c;要求还更高了&#xff0c;最近社群又开始活跃起来了&#xff0c;各种讨论、各种卷。 为方便大家快手入手、节省时间&#xff0c;我整理…

基于vue的游戏网站设计与实现-计算机毕业设计源码02473

摘要 随着计算机科学技术日渐成熟&#xff0c;人们已经深刻认识到了计算机功能的强大&#xff0c;计算机已经进入到了人类社会发展的各个领域&#xff0c;并且发挥着十分重要的作用。通过管理系统在电脑上的应用&#xff0c;人们能更好的管理信息&#xff0c;储存数据。为了能够…