我的AI学习记录

news/2024/11/28 8:22:35/

numpy

数组的索引和切片

import numpy as np
x = np.array([[1, 2], [3, 4], [5, 6]])print("x = np.array([[1, 2], [3, 4], [5, 6]])",end="\n\n")
print(x[[1]],end="\nx[[1]]\n\n")
print(x[1],end="\nx[1]\n\n")print(x[[1, 2]],end="\nx[[1, 2]]\n\n") # 等价于x[1]和x[2]组成的数组
print(x[[1, 2,0]],end="\nx[[1, 2,0]]\n\n") # 等价于x[1]和x[2]和x[0]组成的数组
print(x[[0, 1, 2], [0, 1, 0]],end="\nx[[0, 1, 2], [0, 1, 0]]\n\n") # 等价于x[0, 0]、x[1, 1]和x[2, 0]组成的数组
print(x[[True, False, True]],end="\nx[[True, False, True]]\n\n")
print(x < 4,end="\nx < 4\n\n")
print(x[x < 4],end="\nx[x < 4]\n\n")
print(x[np.array([[True, True], [True, False], [False,False]])],end="\nx[np.array([[True, True], [True, False], [False,False]])]\n\n")x = np.array([[[1, 2], [3, 4]], [[5, 6],[8,9]]])
print(x[[1],[0]],end="\nx[[1],[0]]\n\n") # 等价于x[1,0]组成的数组
print(x[[1,0],[0,0],[1,1]],end="\nx[[1,0],[0,0],[1,1]]\n\n") # 等价于x[1, 0, 1]、x[0, 0, 1]组成的数组。其中像x[1, 0, 1]相当于降了三次维去取值,而结果是x[1, 0, 1]、x[0, 0, 1]组成的数组,所以升了一次维,总的来说是降了两次维,于是结果是一维即[6 2]
print(x[1],end="\nx[1]\n\n")# -----------------------------
import numpy as npa = np.arange(24).reshape((2,3,4))
print(a,end="\n----------\n")
print(a[:2],end="\n----------\n")
print(a[:2][:2, 2, 3],end="\n----------\n")
'''
理解(我用chatgpt阐述我的理解)
在 numpy 中,多个切片和索引操作可以通过链式操作进行组合。对于给定的多维数组,每个维度都可以使用切片或索引操作进行访问。针对你的例子,a 是一个 2x3x4 的三维数组,共包含 24 个元素。首先进行切片操作 a[:2],得到一个新的 2x3x4 的三维数组,其中保留了原数组的前两个元素。接着在这个新数组上进行索引操作 a[:2][:2, 2, 3],表示取出第一维中的前两个元素,第二维中的第三个元素,第三维中的第四个元素。这里的 [:2] 是一个切片操作,用于对第一维进行切片,而 [:2, 2, 3] 是一个索引操作,用于对后面两维进行索引。简单来说,a[:2][:2, 2, 3] 的操作可以分成两个步骤:a[:2]:对第一维进行切片,得到一个 2x3x4 的新数组;
[:2, 2, 3]:对新数组的第一维取前两个元素,对第二维取第三个元素,对第三维取第四个元素,得到一个标量值。
需要注意的是,这种链式操作的执行顺序是从左往右。因此,a[:2][:2, 2, 3] 实际上相当于 (a[:2])[:2, 2, 3],先执行了切片操作,再对切片后的数组进行索引操作。
'''# ---------------------------
c = np.arange(16).reshape((2,2,4))
print(c,end="\n----------\n")
print(c[[1,0,-1]],end="\n----------\n") # 花式索引
print(c[1,0,-1],end="\n----------\n") # 普通索引'''
在 NumPy 中,可以通过以下方式区分花式索引和普通索引:如果使用的是一个元素的索引或者切片索引,那么就是普通索引。
如果使用的是整数数组作为索引,那么就是花式索引。又例如a = np.array([[1, 2], [3, 4], [5, 6]])
普通索引
print(a[0, 1])   # 输出 2
print(a[:, 0])   # 输出 [1, 3, 5]花式索引
print(a[[0, 2]])         # 输出 [[1, 2], [5, 6]]
print(a[[0, 1], [1, 0]]) # 输出 [2, 3]花式索引和普通索引最主要的不同在于:普通索引返回的是数组的一个子集,而花式索引返回的是新的数组,使用花式索引可以方便地从数组中选择出特定的元素
'''

课程对应内容

panda第三节

merge

panda第四节

drop往下到simple取样

panda第五节

去重

http://www.ppmy.cn/news/970015.html

相关文章

写好Prompt,不给ChatGPT老说片汤话的机会

大家好&#xff0c;有没有感觉ChatGPT回答你的问题老说片汤话&#xff0c;这其实有可能咱们的提示语写的不够sensible。 今天主要是针对 ChatGPT 和如何让他回答的更有效展开内容。 什么是 ChatGPT 以下来自维基百科 ChatGPT&#xff0c;全称聊天生成预训练转换器&#xff08;英…

「小摹AI」赋能原型设计 开放内测申请

「小摹AI」智能原型助手发布啦&#xff01; 4大AI应用能力&#xff1a;智能原型|智能文本|智能翻译|智能填充 释放原型设计的无限潜能 摹客AI - 让设计更具创造力http://www.mockplus.cn/ai/?hmsrwencsdnAI 智能原型 催生创新&#xff0c;开启原型设计新境界 根据描述&…

五问“ChatGPT+医学影像”:新一代的AI能否成为放射科医生的一把利器?

自ChatGPT引爆人工智能领域以来&#xff0c;迅速吸引了来自不同领域的科学家和从业者的目光&#xff0c;期待着这一里程碑式的技术为自己的行业带来新的变革。 近日&#xff0c;上海科技大学生物医学工程学院创始院长、联影智能联席CEO沈定刚教授主持举办了一场线上MICS学术沙…

ChatGPT检测攻与守:我们该如何应对AI以假乱真?

©PaperWeekly 原创 作者 | 崔万云、蔡树阳 单位 | 上海财经大学 研究方向 | 大语言模型 2023 年 5 月&#xff0c;《纽约时报》报道了一位经验丰富的律师 Steven A. Schwartz 在对一家航空公司的诉讼中使用了 ChatGPT 生成的六个案例。尽管 ChatGPT 确认这些案例真实无误…

漫画:我再也无法正常使用ChatGPT了!

哈哈&#xff0c;大家不必担心&#xff0c;上面的漫画只是给大家开个玩笑&#xff0c;ChatGPT当然不可能这么容易就被玩坏。 想要真正结束游戏其实很容易&#xff0c;输入一些关键字就可以触发游戏的结束&#xff0c;比如这样说&#xff1a; 这样一来&#xff0c;ChatGPT就能恢…

干货|如何更好地使用ChatGPT,请从与它的第一句对话开始

ChatGPT是一个强大的人工智能助手&#xff0c;它可以提供各种问题的解答和建议。因此&#xff0c;在使用ChatGPT时&#xff0c;了解如何向它提问、如何与它互动以及如何获得最有价值的回答变得尤为重要。本文旨在为您介绍如何较好地开启与它的第一句对话&#xff0c;以更好地探…

我请ChatGPT帮我创建一些漫画,大家一起来看看

英文 | https://medium.com/chazhutton/i-asked-chatgpt-to-create-comics-then-i-drew-them-6e9622dfc30e 翻译 | 杨小爱 到目前为止&#xff0c;我想&#xff0c;你可能已经听说过 ChatGPT&#xff0c;这是一款开放式 AI 聊天机器人&#xff0c;它似乎无所不能&#xff0c;可…