python 《numpy》
Posted 晴晴小可爱的小弟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 《numpy》相关的知识,希望对你有一定的参考价值。
import numpy as np
创建一个矩阵
array = np.array([[1, 2, 3],
[3, 2, 1]])
print(array) # [[1 2 3] # [3 2 1]]
print(‘array dim:‘, array.ndim) # 显示几维
shape 矩阵的形状
print(‘shape:‘, array.shape) # 显示几行几列
设置元素的类型
a = np.array([1, 2, 3], dtype=np.float)
print(a.dtype) # float64
有时候我们会生成矩阵
# ####### 生成全部为0的矩阵 ######### zero = np.zeros((3, 4), dtype=int) print(zero) # [[0 0 0 0] # [0 0 0 0] # [0 0 0 0]] # ########生成全部为1的矩阵 ############### ones = np.ones((3, 5)) print(ones) # [[1. 1. 1. 1. 1.] # [1. 1. 1. 1. 1.] # [1. 1. 1. 1. 1.]]
# ######### reshape ##################### _range = np.arange(20).reshape((5, 4)) print(_range) #[[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11] # [12 13 14 15] # [16 17 18 19]]
# ########### 线段 ################### linplace = np.linspace(0, 10, 6) print(linplace)
线段矩阵,表示从0到10的闭区间也就是11个数,取6个数出来
2.矩阵的分隔
import numpy as np a = np.array([[0, 1, 2], [2, 3, 4]]) b = np.arange(0, 6).reshape([3, 2]) print(a) print(b) print(a > 3) # 每个元素都判断一边是不是满足条件不满足返回false,满足返回trueprint(a+b) # 加法减法都一样print(a*b) # 乘法 对应位置相乘print(‘########################‘)print(np.sin(a)) # sin cos tan都可以(每个位置分别sin ...)print(np.dot(a, b)) # 矩阵相乘 ()# 还有一种表达方式为 a.dot(b) x = np.random.random([2, 4]) # 随机生成一个在0到1之间的x print(x) print(x.sum(axis=0)) # 全部元素的和 axis等于0在每一列寻找 等于1在每一行中寻找 print(x.max()) # 最大值 print(x.min()) # 最小值 print(np.argmin(a)) # 返回最小值的索引 print(a.argmax()) # 返回最大值的索引 print(np.average(a)) # 这样也可以返回平均值 但是这个不能a.median() print(a.mean()) # 返回平均值 当然 np.argmean()也可以 print(np.median(a)) # 中位数 这个不能 a.median() print(np.cumsum(a)) # 元素个数相同,每个元素是之前的累加 print(np.diff(a)) # 两个元素之间的差 print(np.nonzero(a)) # 返回两个数列分别表示行,列 print(np.sort(a)) # 排序 print(np.transpose(a)) # 转置 print(a.T) # 转置 print(np.clip(a, 5, 9)) # 所有小于五的数都设置为5 大于9的数变为9
3.矩阵的索引
# 什么a[0] a[0][1] for row in a 的我就不讲了,反正也会 # 其实a[0][1] 也可以表示为a[0, 1] for row in a: print(row) # 打印行 for column in a.T: print(column) # 打印列 # 最后依然说一些关于迭代输出的问题: A = np.arange(3, 15).reshape((3, 4)) print(A.flatten()) # array([3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]) for item in A.flat: print(item)
4.矩阵的分割
import numpy as np A = np.arange(12).reshape((3, 4)) X = np.split(A, 3, axis=0) # 横这分割 x = np.vsplit(A, 3) # 横这分割 Y = np.split(A, 4, axis=1) # 列着分割 y = np.hsplit(A, 4) # 列着分割 print(type(A)) # <class ‘numpy.ndarray‘> print(X) # [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])] print(type(X)) # <class ‘list‘> Z = np.array_split(A, 5, axis=1) # 不对等分割 print(A) # [[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11]] print(Z) # [array([[0], # [4], # [8]]), array([[1], # [5], # [9]]), array([[ 2], # [ 6], # [10]]), array([[ 3], # [ 7], # [11]]), array([], shape=(3, 0), dtype=int32)]
5.矩阵的合并
import numpy as np A = np.array([1, 2, 3]) print(A.shape) # 此时A不是矩阵属性,只是一个列表属性 # (3,) print(A.T) # 所以转置无效 # [1 2 3] # 需要变为矩阵在来转置 # ######### 把a变成矩阵 print(A[np.newaxis, :].shape) # (1, 3) B = np.array([5, 6, 7]) C = np.vstack((A, B)) # 上下合并 D = np.hstack((A, B)) # 左右合并 print(C) # [[1 2 3] # [5 6 7]] print(D) # [1 2 3 5 6 7] print(C.T) # [[1 5] # [2 6] # [3 7]]
以上是关于python 《numpy》的主要内容,如果未能解决你的问题,请参考以下文章
python实战应用讲解-numpy专题篇numpy常见函数使用示例(附python示例代码)