numpy中数组的简单运算以及使用
Posted xaiobong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy中数组的简单运算以及使用相关的知识,希望对你有一定的参考价值。
import numpy as np # 定义一个数组 test_array = np.array([[1 ,2 ,3] ,[3 ,4 ,5]]) ###数组简单的加减乘除法 # 加法 print(test_arra y +1) # 返回[[2 3 4][4 5 6]] # 减法 print(test_arra y -11) # 返回[[-10 -9 -8][ -8 -7 -6]] # 乘法 print(test_arra y *3) # 返回[[ 3 6 9][ 9 12 15]] # 除法 print(test_arra y /2) # 返回[[0.5 1. 1.5][1.5 2. 2.5]] import numpy as np ###数组的索引和切片 test_arr = np.arange(10) print(test_arr) print(test_arr[1]) print(test_arr[1:5]) """ 运行结果 [0 1 2 3 4 5 6 7 8 9] 1 [1 2 3 4] """ ###使用列表或数组来进行赋值 import numpy as np test_arr = np.arange(10) print(test_arr) test_arr[1:5] = [6,6,6,6] print(test_arr) test_arr[1:5] = np.array([9,9,9,9]) print(test_arr) """ 运行结果 [0 1 2 3 4 5 6 7 8 9] [0 6 6 6 6 5 6 7 8 9] [0 9 9 9 9 5 6 7 8 9] """ ###数组的单元素赋值 import numpy as np test_arr = np.arange(10) print(test_arr) test_arr[1:5] = 12 print(test_arr) """ 运行结果 [0 1 2 3 4 5 6 7 8 9] [ 0 12 12 12 12 5 6 7 8 9] """ # 两个注意点 # (a)一个标量的赋值瞬间实现整个切片区域的赋值,叫做numpy的广播功能 # (b)数组切片和列表切片,仅数组切片有广播功能 ###列表和数组的一个重要的区别 # 跟列表切片最大的区别是数组切片是原数组的视图,这就意味着原数组数据不会被复制保留,视图上任何改变都会影响原数组。 # 所以,数组切片赋值会改变原数组,列表切片赋值不会改变愿列表,想要改变列表需要直接给列表赋值。 # 二维数组的索引和切片 # 创建一个3x3的二维数组 import numpy as np test_arr = np.arange(9).reshape(3 ,3) print(test_arr) """ 运行结果 [[0 1 2] [3 4 5] [6 7 8]] """ # 取出4 import numpy as np test_arr = np.arange(9).reshape(3 ,3) print(test_arr) print(%test_arr[1 ,1]) # 第一个参数为行号,第二个参数为列号 """ 运行结果 [[0 1 2] [3 4 5] [6 7 8]] 4 """ # 三维数组的索引和切片 # 创建一个有两个3x3二位数组的三维数组 import numpy as np test_arr = np.arange(18).reshape(2 ,3 ,3 ) # 第一个参数为总共有几个元素,第二个参数为行号,第三个参数为列号 print(test_arr) """ 运行结果 [[[ 0 1 2] [ 3 4 5] [ 6 7 8]] [[ 9 10 11] [12 13 14] [15 16 17]]] """ # 取出9 print(test_arr[1 ,0 ,0]) # 若array切片时不想改变原array的结构,可以使用copy()先进行拷贝 test_xxx = np.arange(18).reshape(2 ,3 ,3) test_ttt = test_xxx.copy() test_ttt[1 ,0 ,0] = 333 print(test_xxx) print(test_ttt) ###布尔形索引(进行筛选) import numpy as np name = np.array([‘wiz‘ ,‘gougou‘ ,‘ac‘ ,‘lc‘]) score = np.array([[99 ,99 ,99] ,[88 ,88 ,88] ,[81 ,87 ,66] ,[100 ,100 ,100]]) print(score[name==‘gougou‘]) """ 运行结果 [[88 88 88]] """ ###数组的转置 arr = np.arange(16).reshape(2 ,2 ,4) print(arr) print(arr.T) ###numpy的基本数学统计方法 # 方差(体现数组中数据的离散情况,数值越小数据越稳定) arr = np.arange(16).reshape(2 ,4 ,2) print(arr.var()) # 标准差 print(arr.std())
以上是关于numpy中数组的简单运算以及使用的主要内容,如果未能解决你的问题,请参考以下文章