在 NumPy 里,大部分的操作都是使用 ndarray 來完成,ndarray 是一個快速的且可以节省空间的数组
读取方式
| 方法 | 说明 |
|---|---|
| 索引值读取 | 根据数组的索引值读取 |
| 切片读取 | 使用 类 似串列切片 slice 的方式,取出某一個范围的元素 |
| 布尔值读取 | 使用布尔值筛选符合条件的元素 |
索引值读取
import numpy as np
a = np.array([1,2,3,4,5])
print(a[0]) #1
print(a[1]) #2
print(a[2]) #3
多维数组 指定 [索引值串列],读取对应的元素
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(a[0,0]) # 1
print(a[1,1]) # 5
三维数组读取
import numpy as np
a = np.array(
[
[
[1,2],[3,4]],
[[5,6],[7,8]
]
]
)
print(a[0,0,0]) # 1
print(a[0,1,0]) # 3
print(a[1,0,1]) # 6
print(a[1,1,1]) # 8
切片读取
import numpy as np
a = np.array([1,2,3,4,5,6,7,8,9])
# 从第三个取值到第五个(不包括第6个)
print(a[2:5])
# 从第一项取值到第五个
print(a[:5])
# 从第三项开始取值到最后
print(a[2:])
# 从第三项取值到倒数第二项
print(a[2:-1])
# 间隔取值 间隔2个
print(a[::2])
# 从第三项到第七项,间隔2
print(a[2:8:2])
# 数组翻转
print(a[::-1])
# 取出 第二 第四 第六 第8项
print(a[[1,3,5,7]])
对于多维数组 ,切片后会产生新的数组
import numpy as np
a = np.array([
[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15]
])
print(a[0, 2:4]) # [3 4]
print(a[1:, 2:4])
'''
[[ 8 9]
[13 14]]
'''
print(a[:, 2:4])
'''
[[ 3 4]
[ 8 9]
[13 14]]
'''
布尔值读取
读取数组的时候,可以使用布尔值进行筛选,为 True 的保留,为 False 的丢弃,使其成为一个筛选后的新数组
一维数组
import numpy as np
a = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
# 筛选大于5
print(a[a>5])
# 筛选为偶数的元素
print(a[a%2==0])
# 筛选大于5且小12的元素
print(a[(a>5) & (a<12)])
多维数组
import numpy as np
b = np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]])
print(b[:]>5)
print(b[b[:]>3])