import numpy as np
arr=np.arange(10)
print(arr)
print('ndarray的切片语法跟Python列表这样的一维对象差不多:\n',arr[1:6])
arr2d=np.array([[1,5,3,6],[2,5,3,6]])
print('arr2d',arr2d)
print('对于之前的二维数组arr2d,其切片方式稍显不同:',arr2d)
print("表达式arr2d[:2]可以被认为是“选取arr2d的前两行”\n",arr2d[:2])
print('你可以一次传入多个切片,就像传入多个索引那样:\n',arr2d[:2,1:])
print('通过将整数索引和切片混合,可以得到低维度的切片。\n',arr2d[1,:2])
print(arr2d[1:2, :2])
#布尔型索引
names=np.array(['sdf','sdfe','rghe','weg','gee','jyf','tthd'])
data=np.random.randn(7,4)
print('布尔型索引\n',names)
print(data)
print('假设每个名字都对应data数组中的一行,而我们想要选出对应于名字"sdf"的所有行。'
'跟算术运算一样,数组的比较运算(如==)也是矢量化的。因此,对names和字符串"sdf"的比较运算将会产'
'生一个布尔型数组:\n',data[names=='sdf'])
print("我选取了names == 'sdf'的行,并索引了列:\n",data[names=='sdf',2:])
print('要选择除"sdf"以外的其他值,既可以使用不等于符号(!=),也可以通过~对条件进行否定:\n',names!='sdf')
print(data[~names=='sdf'])
cond=names=='sdf'
print(data[~cond])
#通过布尔型数组设置值是一种经常用到的手段。为了将data中的所有负值都设置为0,我们只需:
data[data<0]=0
print('通过布尔型数组设置值是一种经常用到的手段。为了将data中的所有负值都设置为0,我们只需:\n',data)
numpy基础
最新推荐文章于 2022-12-11 16:48:25 发布