码迷,mamicode.com
首页 > 编程语言 > 详细

Python-Numpy库的学习

时间:2020-05-13 10:23:26      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:rand   知识   dex   atl   元素   多维数组   指定   and   数组   

Numpy是数据科学领域中最基础的Python库,它提供了一种快速高效的数学运算,可以和线性代数等数学知识有效的结合起来。而且Numpy是基于C语言实现的,所以它的运行效率足以和C/Matlab相媲美。

1、Array的创建

import numpy as np

# 第一种创建方式
# list1 = [1, 2, 3, 4]
# array1 = np.array(list1)
# array1
# 创建多维数组
# list2 = [5, 6, 7, 8]
# array2 = np.array([list1,list2])
# array2

# 第二种创建方式
# array3 = np.arange(1, 10, 3)  #np.arange(n, m, p) 从n到m-1间隔为p创建数组
# array3

# 第三种,创建零数组
# array4 = np.zeros(3,3)  #np.zeros(n)  一行n列零数组
# array4
# array5 = np.zeros([4,5])  #np.zeros([m,n]) m行n列零数组
# array5

# 第四种创建单位矩阵
# array6 = np.eye(3)  #np.eye(n) n阶单位矩阵
# array6

2、快速创建Array

import numpy as np

# np.random.randn(n) 创建长度为n,元素类型为float的一维数组
np.random.randn(10) 
# np.random.randint(m,size(a,b)) 创建元素类型为int且大小在0到m-1的a*b多维数组
np.random.randint(10,size=(3,4)) 
# 通过reshape把改变维数
np.random.randint(10,size=(3,4)).reshape(6,2)

3、Array的属性

import numpy as np

# 创建二维数组
array1 = np.array([[1, 2, 3, 4],[5, 6, 7, 8]])
array1

# 查看数组的类型
array1.shape

# 查看数组元素的个数
array1.size

# 查看数组元素的类型
array1.dtyp  # 若数组元素的类型不一致,取精确度最高的 

4、Array的访问

import numpy as np

# 创建一维数组
array1 = np.arange(1, 10)
array1
# 访问数组中的元素
array1[2] # index是从0开始 array[n] 访问第n+1位的元素
array1[1:3] # 访问第二位到第四位的元素

# 二维数组
array2 = np.array([[1, 2, 3, 4],[5, 6, 7, 8]])
array2
array2[1][0] # 访问第二行第一列的元素
array2[1,0] # 和上述一个意思
 
# 多维数组
array3 = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])
array3[:2, 1:] #左边指定行,右边指定列。 从第一行到第二行,第二列到最后一列

5、Array常见函数

import numpy as np

#创建数组
a = np.random.randint(10, size=12).reshape(3,4)

# unique()函数
np.unique(a)  # 返回数组中唯一的元素

# sum()函数
sum(a)  # 返回每一列的和
# 具体某一行
sum(a[0])  # 返回第一行元素的和
# 具体某一列
sum(a[:,0])  # 返回第一列元素的和

# max()函数
a.max()  # a中元素最大的
# 某一行某一列最大的元素 和sun()函数类似
max(a[0])   # 第一行最大的元素
max(a[:,0])  # 第一列最大的元素

6、数组运算

import numpy as np

# 创建两个多维数组
array1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
array2 = np.array([[0,1,2],[2,3,0],[4,5,6]])

# 加减法 对应位置相加减
# array1 + array2
# array1 - array2

# 乘法 对应位置相乘
# array1 * array2

# 除法 对应位置相除
# array1 / array2  # 会出现警告 因为除数不能为0

7、矩阵的创建

import numpy as np

# 第一种方式
a = np.mat([[1,2,3],[4,5,6]])

# 第二种方式 与数组联系起来
b = np.mat(np.random.randint(10, size=6).reshape(3,2))

8、矩阵的运算

import numpy as np

# 创建两个矩阵
A = np.mat([[1,2,3],[4,5,6]])
B = np.mat([[7,8,9],[2,4,8]])

# 加减法 和数组的加减法一样
# A + B  
# A - B  # 对应位置相加减

# 乘法 
‘‘‘
直接写 A * B 是肯定不行的!
矩阵相乘的基本法则是前一个矩阵的列数等于后一个矩阵的行数
‘‘‘
# 上述问题可以通过把B转置成3*2的矩阵
B.T  
A * B.T

Python-Numpy库的学习

标签:rand   知识   dex   atl   元素   多维数组   指定   and   数组   

原文地址:https://www.cnblogs.com/R-sea-L/p/12879439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!