学习numpy后,整理了一些numpy的常见用法
首先引入numpy库
import numpy as np
以下默认已经引入numpy库
- 创建一个大小为10的零向量
array = np.zeros(10)
print(array)
#零向量为np.zeros,全为1的向量为np.ones,只有全0和全1
- 创建一个大小为10且第五个值为1的零向量
array = np.zeros(10)
array[4] = 1 #注意下标是4
print(array)
- 创建一个值从10到49的向量
array = np.arange(10, 50) #左闭右开
print(array)
- 创建一个从0到8的3 * 3矩阵
array = np.arange(0, 9).reshape(3, 3) #reshape可改变数组的格式
print(array)
- 创建一个具有随机值的10x10数组,并找到最小值和最大值
array = np.random.random((10, 10))
n1 = array.max()
n2 = array.min()
print(array)
print(n1)
print(n2)
- 创建一个n行n列全为0的二维数组
#两种表示方法
def func1(n):
arr = np.zeros([n] * 2)
return arr
def func2(n):
arr = np.zeros([n, n])
return arr
num = int(input("please enter a number:"))
arr1 = func1(num)
arr2 = func2(num)
print(arr1)
print(arr2)
- 创建一个n行m列全为0的二维数组
def func(n,m):
arr = np.zeros((n, m)) #arr = np.zeros([n, m])也可以
return arr
arr = func(n, m) #调用函数,输入n、m值
print(arr)
- 创建一个边界为1,内部为0的二维数组
#方法一:改变边界
def func1(n):
arr = np.zeros([n] * 2) #创建一个n行n列的零向量
arr[[0, -1], :] = 1 #用切片的方式将所有列里的第0行和最后一行改为1
arr[:, [0, -1]] = 1 #用切片的方式将所有行里的第0列和最后一列改为1
return arr
num = int(input("please input a number:"))
array = func1(num)
print(array)
#方法二:改变内部
def func2(n):
arr = np.ones([n] * 2) #创建一个n行n列全为1的向量
arr[1:-1, 1:-1] = 0 #用切片的方式将内部改为0
return arr
num = int(input("enter a number:"))
array = func2(num)
print(array)
- 5×3矩阵乘以3×2矩阵(实矩阵乘积)
a1 = np.arange(15).reshape(5, 3)
a2 = np.arange(6).reshape(3, 2)
a3 = np.dot(a7, a8)
print(a1)
print(a2)
print(a3)
其他零碎知识点:
#数组元素个数:
print(array.size)
#数组的形状:
print(array.shape)
#数组array内所有数据加减乘除一个数num
print(array + num) #其他类比即可
#将列表转换为数组
#先创建一个列表
a = [1,2,3,4]
#列表转换为数组
b = np.array(a)
#矩阵运算
#创建两个矩阵
x = np.array([[1, 2], [3, 4]])
y = np.array([[5, 6], [7, -1]])
#矩阵相乘
arr1 = np.dot(x, y)
#矩阵求逆
arr2 = np.linalg.inv(x)
#矩阵转置
arr3 = x.T
以后遇到其他会再进行补充