先创建一个names一维数组,再用numpy.random中的randn函数生成一个7*4数组:
>>names=np.array(["Bob","Joe","Will","Bob","Will","Joe","Joe"])
>>data=np.random.randn(7,4)
1.对names和字符串“Bob”的比较运算将会产生一个布尔型数组:
>>> names=="Bob"
array([ True, False, False, True, False, False, False], dtype=bool) 得到该数组用于下面索引的实验
2.将这个布尔型数组用于数组索引:
>>> data[names=="Bob"]
array([[ 0.10298484, -0.25113445, -0.78464202, -0.54631363],
[ 0.28620158, 0.1481723 , -1.27040048, 0.29133364]])
取data数组的第1、4行
3.将布尔型数组跟切片混合使用:
>>> data[names=="Bob",2:]
array([[-0.78464202, -0.54631363],
[-1.27040048, 0.29133364]])
取data的第1、4行,并且只取第3列及之后列的元素
注:得到上面的结果要知道数组索引,参考其他资料
4. numpy数组中对于step的用法,有以下特殊情况:
L[::5]表示从第0个数开始,所有数,每5个取一个(这个切片操作把start_index和end_index均省略了)
L[::-1]表示翻转整个数组
L[:]表示复制整个数组
5.切片中省略号的用法:
>>>b[0,:,:]
多个冒号可以用一个省略号(...)来代替,因此上面的代码等价于:
>>>b[0,...]