我爱编程

Numpy 切片与索引

2018-02-02  本文已影响0人  绍重先
#-*-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



上一篇下一篇

猜你喜欢

热点阅读