Numpy(3)
来源:互联网 发布:星火英语怎么样 知乎 编辑:程序博客网 时间:2024/05/22 07:52
存取元素
- 切片
- 整数数组
- 布尔数组
'''# coding=utf-8 Created on 2016-9-5 @author: paulsweet '''import numpy as np
整数数组
a=np.arange(10)a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
a[:-1]
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
a[0:5] # 用范围作为下标获取数组的一个切片,包括a[0],不包括a[5].
array([0, 1, 2, 3, 4])
a[2:4] = 100,101 # 下标还可以用来修改元素的值a
array([ 0, 1, 100, 101, 4, 5, 6, 7, 8, 9])
a[1:-1:2] # 范围中的第三个参数表示步长,2表示隔一个元素取一个元素
array([ 1, 101, 5, 7])
np.count_nonzero(a)
9
np.shape(a)
(10,)
a[::-1] # 省略范围的开始下标和结束下标,步长为-1,整个数组头尾颠倒
array([ 9, 8, 7, 6, 5, 4, 101, 100, 1, 0])
a[5:1:-2] # 步长为负数时,开始下标必须大于结束下标,注意是不包括1的,即不包括a[5].
array([ 5, 101])
x=np.arange(10,1,-1)x
array([10, 9, 8, 7, 6, 5, 4, 3, 2])
b=x[np.array([3,3,-3,8])]# 获取x中的下标为3, 3, -3, 8的4个元素,组成一个新的数组b
array([7, 7, 4, 2])
b[3]=3 #不直接用切片的方式复制,用这种方法可以杜绝共享空间的问题x
array([10, 9, 8, 7, 6, 5, 4, 3, 2])
布尔数组
当使用布尔数组b作为下标存取数组x中的元素时,将收集数组x中所有在数组b中对应下标为True的元素。使用布尔数组作为下标获得的数组不和原始数组共享数据空间,注意这种方式只对应于布尔数组,不能使用布尔列表。
布尔数组一般不是手工产生,而是使用布尔运算的ufunc函数产生,关于ufunc函数请参照 ufunc运算 一节
x=np.arange(5,0,-1)x
array([5, 4, 3, 2, 1])
x[np.array([True, False, True, False, False])]
array([5, 3])
x[[True, False, True, False, False]]# 如果是布尔列表,则把True当作1, False当作0,按照整数序列方式获取x中的元素
/Users/momo/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/ipykernel/__main__.py:1: FutureWarning: in the future, boolean array-likes will be handled as a boolean array index if __name__ == '__main__':array([4, 5, 4, 5, 5])
x[np.array([True, False, True, True])]# 布尔数组的长度不够时,不够的部分都当作False
/Users/momo/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/ipykernel/__main__.py:1: VisibleDeprecationWarning: boolean index did not match indexed array along dimension 0; dimension is 5 but corresponding boolean dimension is 4 if __name__ == '__main__':array([5, 3, 2])
x=np.random.rand(10) # 产生一个长度为10,元素值为0-1的随机数的数组x
array([ 0.76056934, 0.68242247, 0.02221122, 0.80615371, 0.41637496, 0.24943804, 0.09309115, 0.93440525, 0.73598332, 0.19905471])
x>0.5# 数组x中的每个元素和0.5进行大小比较,得到一个布尔数组,True表示x中对应的值大于0.5
array([ True, True, False, True, False, False, False, True, True, False], dtype=bool)
x[x>0.5]# 使用x>0.5返回的布尔数组收集x中的元素,因此得到的结果是x中所有大于0.5的元素的数组
array([ 0.76056934, 0.68242247, 0.80615371, 0.93440525, 0.73598332])
0 0
- Numpy(3)
- NumPy学习笔记 (3)
- numpy简明教程(3)
- Numpy使用3
- numpy 学习3
- NumPy数组3
- python-numpy小结3
- numpy 学习3
- numpy入门3
- Numpy 使用教程 3
- Numpy
- numpy
- numpy
- Numpy
- numpy
- numpy
- numpy
- NumPy
- mac下使用Elecard Video QuEst比较视频质量
- LeetCode: ZigZag Conversion
- 83. Remove Duplicates from Sorted List
- DHTMLX做一个Grid列表显示数据
- segment
- Numpy(3)
- 设计模式
- web前端学习(4)
- iOS中集成ijkplayer视频直播框架
- CCF——最优灌溉(最小生成树)
- 读书笔记之《大型网站技术架构》
- 【leetcode】c++ map按照value排序
- 初学C语言,有什么好书推荐?
- PythonGui->菜单栏