您的位置:首页 > 编程语言 > Python开发

初学Numpy(四)

2015-10-08 16:12 288 查看
花式索引

花式索引是Numpy术语,它指的是利用整数数组进行索引,假设我们有一个数组8×4的数组。

Note:花式索引和切片不一样,它总数将数组复制到新数组中去。

#!/usr/bin/env python
#-*-coding:utf-8-*-
'''
Description:初学numpy(四)--花式索引
Created on 2015年10月8日
@author: zenwan
@version:
'''
import numpy as np
from pprint import pprint

arr = np.empty((8,4),dtype=np.int)
for i in range(8):
arr[i] = i**2
pprint(arr)

#花式索引:传入一个指定顺序的整数列表或者ndarray
arr_tmp01 = arr[[1,3,4,6]]
arr_tmp02 = arr[[-1,-2,-5,-7]]
pprint(arr_tmp01)
pprint(arr_tmp02)

#一次传入多个索引数组
arr1 = np.arange(32).reshape((8,4))
pprint(arr1)
pprint(arr1[[1,2,3,4],[0,1,2,3]])#最终选出(1,0),(2,1),(3,2),(4,3)位置的元素
pprint(arr1[[1,2,3,4]][:,[0,1]])


运行结果:

array([[ 0,  0,  0,  0],
[ 1,  1,  1,  1],
[ 4,  4,  4,  4],
[ 9,  9,  9,  9],
[16, 16, 16, 16],
[25, 25, 25, 25],
[36, 36, 36, 36],
[49, 49, 49, 49]])
array([[ 1,  1,  1,  1],
[ 9,  9,  9,  9],
[16, 16, 16, 16],
[36, 36, 36, 36]])
array([[49, 49, 49, 49],
[36, 36, 36, 36],
[ 9,  9,  9,  9],
[ 1,  1,  1,  1]])
array([[ 0,  1,  2,  3],
[ 4,  5,  6,  7],
[ 8,  9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23],
[24, 25, 26, 27],
[28, 29, 30, 31]])
array([ 4,  9, 14, 19])
array([[ 4,  5],
[ 8,  9],
[12, 13],
[16, 17]])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: