numpy的indexing学习笔记

numpy的indexing学习笔记

np.newaxis

效果等价于None,放在哪儿哪儿就增加一个单位长度的维度

高级索引

高级索引如果用了一个ndarray的tuple,即同时使用多array进行索引,那么这些ndarray必须保证他们可以被广播到同样的shape,否则就会抛出异常。

而如果有多个索引,那么它们一次索引第1、2、3……维

每一个索引向量内部,相应位置上的值,表示要取被索引对象相应下标上的值,例子如下:

这个例子展示了如何使用 高级索引(Advanced Indexing)来根据查找表(lookup table)将图像中的每个像素映射到相应的 RGB 颜色值。

让我们以简单的代码示例来演示这个过程:

场景:根据查找表映射像素值到 RGB

假设我们有一个包含图像像素值的数组,像素值是 07 之间的整数,每个像素需要映射到一个 RGB 颜色。我们有一个 RGB 查找表,其中每一行对应一个颜色的 RGB 三元组。

示例代码:

import numpy as np

# 创建一个简单的 8 色查找表,每行是一个 RGB 颜色三元组
lookup_table = np.array([
    [255, 0, 0],    # Red
    [0, 255, 0],    # Green
    [0, 0, 255],    # Blue
    [255, 255, 0],  # Yellow
    [0, 255, 255],  # Cyan
    [255, 0, 255],  # Magenta
    [192, 192, 192],# Silver
    [0, 0, 0]       # Black
])

# 创建一个示例图像,像素值为 0 到 7 之间的整数,形状为 (3, 3)
image = np.array([
    [0, 1, 2],
    [3, 4, 5],
    [6, 7, 0]
], dtype=np.uint8)

# 使用高级索引根据像素值从查找表中获取 RGB 颜色
rgb_image = lookup_table[image]

# 打印结果
print("Image:\n", image)
print("\nRGB Image:\n", rgb_image)

解释:

  1. lookup_table:是一个形状为 (8, 3) 的二维数组,其中每一行是一个 RGB 颜色值,代表从 07 的 8 种颜色。

  2. image:是一个形状为 (3, 3) 的二维数组,包含了图像的像素值,像素值的范围是 07(即这些值在查找表的范围内)。

  3. 高级索引lookup_table[image] 采用了图像的像素值作为索引,从查找表中获取相应的 RGB 值。结果是一个形状为 (3, 3, 3) 的数组,每个像素都有一个 RGB 三元组。

执行结果:

Image:
 [[0 1 2]
 [3 4 5]
 [6 7 0]]

RGB Image:
 [[[255   0   0]
  [  0 255   0]
  [  0   0 255]]

 [[255 255   0]
  [  0 255 255]
  [255   0 255]]

 [[192 192 192]
  [  0   0   0]
  [255   0   0]]]

结果解释:

  • 图像的每个像素值都被映射到查找表中的 RGB 值。
  • 对于 image 中的 0,查找表中的对应行是 [255, 0, 0](红色)。
  • 对于 image 中的 1,查找表中的对应行是 [0, 255, 0](绿色)。
  • 依此类推,直到所有像素都被映射到相应的 RGB 颜色。

通过这种方式,可以将图像的像素值(比如灰度图像或标签图像)转换为对应的 RGB 图像,这在许多图像处理应用中非常常见。

本文作者:smartljy

本文链接:https://www.cnblogs.com/smartljy/p/18620043

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Gold_stein  阅读(15)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 逃离地面 RAD & 三浦透子
逃离地面 - RAD & 三浦透子
00:00 / 00:00
An audio error has occurred.

作词 : 野田洋次郎

作曲 : 野田洋次郎

空飛ぶ羽根と引き換えに 繋ぎ合う手を選んだ僕ら

それでも空に魅せられて 夢を重ねるのは罪か

夏は秋の背中を見て その顔を思い浮かべる

憧れなのか、恋なのか 叶わぬと知っていながら

重力が眠りにつく 1000年に一度の今日

太陽の死角に立ち 僕らこの星を出よう

彼が眼を覚ました時 連れ戻せない場所へ

「せーの」で大地を蹴って ここではない星へ

行こう

もう少しで運命の向こう もう少しで文明の向こう

もう少しで運命の向こう もう少しで

夢に僕らで帆を張って 来たるべき日のために夜を超え

いざ期待だけ満タンで あとはどうにかなるさと 肩を組んだ

怖くないわけない でも止まんない

ピンチの先回りしたって 僕らじゃしょうがない

僕らの恋が言う 声が言う

「行け」と言う