Numpy 切片与索引

#-*-coding:utf-8-*-
#2018/2/2

import numpy as np

#基本的索引和切片
arr=np.arange(10)
arr[5:8] = 13.7
print arr

#数组切片是原始数组的视图->数据不会被复制->视图上的任何修改会反应到源数组上(大数据处理)
#如果想要一份副本,则要显式进行复制操作 如arr[5:8].copy()

arr_slice = arr[5:8]
print arr_slice
print arr

#高维数组索引
arr3d = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
print arr3d

#arr3d[0]是一个2x3数组
'''
    array([[1,2,3],
            [4,5,6]])
'''
#标量值和数组都可以被赋值给arr3d[0]
old_values = arr3d[0].copy()
print old_values
arr3d[1] = 20
print arr3d[1]

#切片索引
arr2d = np.array([[1,2,3],[4,5,6],[7,8,9]])
print arr2d[1:2,1:2]

#布尔型索引
names = np.array(['Bob','Joe','Will','Joe','Joe'])
print names
#使用numpy.random中的randn函数生成正太(误)分布随机数据
data = np.random.randn(7,4)
print names.dtype
 
print names == 'Bob'
print data[names == 'Bob']

mask = (names == 'Bob')|(names == 'Will')
print data[mask]

#通过布尔型数组设置值
#将data中所有负值设置为0
data[data<0] = 0
print data
data.astype(np.float32)
print data



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容