numpy索引和切片

171 阅读1分钟

3.学习+练习

import numpy as np

ar = np.arange(20)
print(ar)

# 基本数组切片  和列表一样
print(ar[4])
print(ar[:3])
print(ar[::2])

# 二维数组
ar2 = np.arange(16).reshape(4, 4)
print(ar2)

# 第三行
print(ar2[2])

print(ar2[2][0])

# 第二三行
print(ar2[1:3])

# 第三行第四列
print(ar2[2, 3])

print(ar2[:1, 2:])

# 三维以及三维以上的数组
ar3 = np.arange(12).reshape(3, 2, 2)
print(ar3)

print(ar3[2])

print('----------------')
print(ar3[2][1])
print('==')
print(ar3[2][1][1])

# 布尔类型的索引和切片
# 判断  和  索引
ar4 = np.arange(12).reshape(3, 4)
print(ar4)

i = np.array([True, False, True])
j = np.array([True, True, False, False])

print(i)
print(j)
# 因为是 True, False, True 对应刚好三行 TRUE输出
print(ar4[i, :])

print(ar4[:, j])

# 添加判断语句
print(ar4 > 5)  # 布尔数组

print(ar4 > 5, type(ar4 > 5))
# 变成一维数组
print(ar4[ar4 > 5])

m = ar4 > 5
print(ar4[m])

# 索引以及切片值的更改、复制
ar5 = np.arange(10)
print(ar5)

ar5[5] =100
ar5[7:9] = 200
print(ar5)

# 复制
ar6 = np.arange(10)
b = ar6.copy()
b[7:9] = 200
print(ar6)
print(b)