from numpy import * import numpy as np # numpy数组 lst = [0, 1, 2, 3] a = array(lst) print(a) # a 的数据类型 print(type(a)) # 元素类型 print(a.dtype) # 每个元素所占空间大小 print(a.itemsize) # 改变a的形状 a.shape = 2, -1 print(a) # 输出a的形状 或者调用a的属性 shape print(shape(a)) # 看所有元素占用控件 print(a.nbytes) # 看数组维数 print(a.ndim) # 用fill方法讲数组值设为初始值,如果数据类型同 自动转换为numpy中的数据类型 a.fill(-4.1) print(a) a = array([1, 2, 3, 4]) print(a[:2]) print(a[-2:]) print(a[::-1]) print(a[::2]) # 如果od代表里程数每天,计算差值 od = array([21000, 21180, 21240, 22100, 22400]) dist = od[1:] - od[:-1] # od[1:] 从1 开始[21180, 21240, 22100, 22400] # od[:-1] 到-1索引 即为index_max - 1 结束[21000, 21180, 21240, 22100] print(dist) # 计算差值 a = array([1, 2, 3, 4, 5, 6, 7, 8]) a.shape = 2, -1 print(a) # 多维度取值 print(a[1, 1]) # 索引为0的行数的array print(a[0]) a = array([[0, 1, 2, 3, 4, 5], [10, 11, 12, 13, 14, 15], [20, 21, 22, 23, 24, 25], [30, 31, 32, 33, 34, 35], [40, 41, 42, 43, 44, 45], [50, 51, 52, 53, 54, 55]]) # 取出第三行 第4 5 列元素 print(a[2, 3: 5]) # 取出最后两行的最后两列 print(a[-2:, -2:]) # 取出第二列 print(a[:, 1]) # 注意以上切片是引用机制,没有分配新的储存空间 # 改变值也会改变原值 a = array([0, 1, 2, 3, 4]) print(a) # [0 1 2 3 4] b = a[1:3] print(b) # [1 2] b.fill(2) print(a) # [0 2 2 3 4] """ 这样的现象在列表中不会出现 如果需新的内存(非引用关系,而是独立内存) 需要调用copy """ x = a[:].copy() print(x) # [0 2 2 3 4] x.fill(3) # 改变x中的值 print(a) # [0 2 2 3 4] print(x) # [0 2 2 3 4] # 从上可以看出 a没有变化 # 花式索引 a = arange(0, 80, 10) # 产生等差数组 print(a) # [ 0 10 20 30 40 50 60 70] index = [1, 3, 2] index = array(index) # 可有可无 可以是np.array取索引也可以是list y = a[index] print(y) # [10 30 20] mask = array([0, 1, 0, 1, 1, 0, 1, 0], dtype=bool) y = a[mask] print(y) # [10 30 40 60] a = np.random.rand(10) print(a) b = a > 0.5 print(b) print(a[b]) a = array([[0, 1, 2, 3, 4, 5], [10, 11, 12, 13, 14, 15], [20, 21, 22, 23, 24, 25], [30, 31, 32, 33, 34, 35], [40, 41, 42, 43, 44, 45], [50, 51, 52, 53, 54, 55]]) print(a) b = a[(0, 1, 2, 3, 4), (0, 1, 2, 3, 4)] print(b) b.fill(2) print(a) # 花式索引是 copy """ 花式索引和切片的区别 花式索引:产生一个新的list 放入原来的 切片 : 直接用 a[1:2:1] """ a = array([0, 12, 5, 20]) b = where(a > 10) print(b) # (array([1, 3], dtype=int64),) print(a[b]) # [12 20] a = arange(25) a.shape = 5, -1 r, c = where(a > 10) print(r) print(c) print(a[r, c])
numpy数组
猜你喜欢
转载自blog.csdn.net/SpringQAQ/article/details/81269409
今日推荐
周排行