numpy

tech2023-10-29  97

import Numpy as np arr = [0,1,2,3,4,5,6,7,8,9] np.max np.min np.log np.arange(0,11) #生成0-10的([0,1,2,3,4,5,6,7,8,9,10])

numpy list 和 python list的不同

#批量设置list中元素 broadcasting arr[0:5] = 100 out: [100,100,100,100,100,5,6,7,8,9,10]

只看array中部分元素

slice_of_arr = arr[0:6] out: arr([0.1.2.3.4.5])

批量设置

slice_of_arr[:] = 99 out: arr([99,99,99,99,99,99])

注意,此时也更改了原始array中的元素,slice_of_arr只是pointer, 不是一个新的copy. 因为numpy一般都在处理大批量数据,为了节省空间一般默认不是copy

in:arr out: array([99,99,99,99,99,99,6,7,8,9,10])

如果需要copy则要单独设置

arr_copy = arr.copy()

matrics indexing 2种方式

[row, col] 2. [row][col] import numpy as np mat = np.array([[1,2,3],[4,5,6],[7,8,9]]) mat out: array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) mat[1][1] out:5 mat[1,1] out:5 mat[2] out:array([7, 8, 9])

获取matric里面某一行的部分元素

mat[:2, 1:] out : array([[2, 3], [5, 6]])

CONDITIONAL SELECTION

arr = np.arange(1,11) arr out:array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) arr > 4 out: array([False, False, False, False, True, True, True, True, True, True]) bool_arr = arr > 4 arr[bool_arr] out: array([ 5, 6, 7, 8, 9, 10]) OR arr[arr>4] out: array([ 5, 6, 7, 8, 9, 10])

创建矩阵

arr = np.arange(0,9).reshape(3,3) arr out: array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) np.eye(3) out: array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]) #随机产生一个0-1之间的数字 np.random.rand(1) #随机产生25个正态分布 np.random.randn(25)

matric 矩阵中的行和列分别相加

mat = np.arange(1,26).reshape(5,5) mat out: array([[ 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25]])

行相加:

mat.sum(axis=0) out: array([55, 60, 65, 70, 75])

列相加:

mat.sum(axis=1) out: array([ 15, 40, 65, 90, 115])

axis = 0 代表取列数字加总, 1 代表取每行数字加总

最新回复(0)