python数据分析——numpy基础(四)

1、元素的重复操作(repeat与tail)
repeat是元素级别的,tail是数组级别的

print('Repeat: 按元素')
arr = np.arange(3)
print(arr)
print(arr.repeat(3))
print(arr.repeat([2, 3, 4])) # 3个元素,分别复制2, 3, 4次。长度要匹配!
print

print('Repeat,指定轴')
arr = np_random.randn(2, 2)
print(arr)
print(arr.repeat(2, axis = 0))# 按行repeat
print(arr.repeat(2, axis = 1))# 按列repeat
print

print('Tile: 参考贴瓷砖')
print(np.tile(arr, 2))
print(np.tile(arr, (2, 3)))  # 指定每个轴的tile次数
# 结果
Repeat: 按元素
[0 1 2]
[0 0 0 1 1 1 2 2 2]
[0 0 1 1 1 2 2 2 2]
Repeat,指定轴
[[-0.66497955  0.86825718]
 [ 0.35759952 -0.44069729]]
[[-0.66497955  0.86825718]
 [-0.66497955  0.86825718]
 [ 0.35759952 -0.44069729]
 [ 0.35759952 -0.44069729]]
[[-0.66497955 -0.66497955  0.86825718  0.86825718]
 [ 0.35759952  0.35759952 -0.44069729 -0.44069729]]
Tile: 参考贴瓷砖
[[-0.66497955  0.86825718 -0.66497955  0.86825718]
 [ 0.35759952 -0.44069729  0.35759952 -0.44069729]]
[[-0.66497955  0.86825718 -0.66497955  0.86825718 -0.66497955  0.86825718]
 [ 0.35759952 -0.44069729  0.35759952 -0.44069729  0.35759952 -0.44069729]
 [-0.66497955  0.86825718 -0.66497955  0.86825718 -0.66497955  0.86825718]
 [ 0.35759952 -0.44069729  0.35759952 -0.44069729  0.35759952 -0.44069729]]

2、take与put——花式索引

# 花式索引
arr = np.arange(10) * 100
inds = [7, 1, 2, 6]
print(arr[inds])
# 与上面的等价
print(arr.take(inds))

# 使用put更新内容
arr.put(inds, 50)
print(arr)
arr.put(inds, [70,10,20,60])
print(arr)

arr = np_random.randn(2,4)
inds = [2, 0, 2, -1]
print(arr)
# 指定轴 按照列进行 该列输出 第二列 第0列 第2列 最后一列的数
print(arr.take(inds, axis=1))

猜你喜欢

转载自blog.csdn.net/reuxfhc/article/details/80152072