多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 创建二维数组 ~~~ import numpy as np tang_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(tang_array) # 打印shape print(tang_array.shape) # 元素个数 print(tang_array.size) # 查看几维 print(tang_array.ndim) ~~~ 输出 ~~~ [[1 2 3] [4 5 6] [7 8 9]] (3, 3) 9 2 ~~~ # 索引和切片 ![](https://box.kancloud.cn/057544a20eecfdbc6c3497504ecf186c_360x178.png) ~~~ # 行,列 print(tang_array[1, 1]) print(tang_array[1]) # 想取第1列,开始是第0列开始 # : 表示取所有行,1表示所有列中第一个值 print(tang_array[:, 1]) # 取第0行,前2个值 print(tang_array[0, 0:2]) ~~~ 输出 ~~~ 5 [4 5 6] [2 5 8] [1 2] ~~~ # 值的改变 ~~~ # 改变中间列的中间的值 tang_array2 = tang_array tang_array2[1, 1] = 100 print(tang_array2) print(tang_array) ~~~ 输出 ~~~ [[ 1 2 3] [ 4 100 6] [ 7 8 9]] [[ 1 2 3] [ 4 100 6] [ 7 8 9]] ~~~ 发现原始值也改变了 如果想不影响原来的,需要 ~~~ tang_array2 = tang_array.copy() ~~~ # 构造其他数组 ## 等差数组 ~~~ import numpy as np # 构造等差数组,在0-100之间,左闭右开 # 这些数字中每10个就构造 tange_array = np.arange(0, 100, 10) print(tange_array) ~~~ 输出 `[ 0 10 20 30 40 50 60 70 80 90]` ## 根据dtype值来构造 ~~~ import numpy as np # 根据值并指定dtype类型来构造 mask = np.array([0,0,0,4,3,1], dtype=bool) print(mask) ~~~ 输出 `[False False False True True True]` ## 布尔值的数组还可以作为下标 ~~~ import numpy as np tang_array = np.arange(0, 100, 10) mask = np.array([0, 0, 0, 4, 3, 1, 0, 1, 0, 0], dtype=bool) # 要求mask这个数组元素个数和tang_array个数对应起来 print(tang_array[mask]) ~~~ 输出 `[30 40 50 70]` ## 构造随机数并根据大小转bool ~~~ import numpy as np random_array = np.random.rand(10) print(random_array) mask = random_array > 0.5 print(mask) ~~~ 输出 ~~~ [ 0.55235889 0.56457011 0.41540999 0.12196489 0.23038023 0.97832018 0.57625532 0.99925087 0.36584497 0.07388756] [ True True False False False True True True False False] ~~~ ## 找出大于这个值的索引 ~~~ import numpy as np tang_array = np.array([10, 20, 30, 40, 50]) # 找出大于30的索引 print(np.where(tang_array > 30)) ~~~ 输出 `(array([3, 4]),)` **也可以根据这个索引打印出对应的值** ~~~ print(tang_array[np.where(tang_array > 30)]) ~~~ 输出 `[40 50]`