numpy学习笔记

import numpy as np

 

# dtype指定类型, np.int64指占用的空间是64

array = np.array([[1,2,3],

                 [2,3,4]],dtype = np.int64)

# 打印array

print(array)

print('number of dim',array.ndim)

# 二行三列

print('shape',array.shape)

# 元素的大小

print('size',array.size)

print(array.dtype)

 

# 定义一个三行四列的0矩阵

arrayv1 = np.zeros((3,4),dtype = np.int16)

print(arrayv1)

 

# 定义一个三行四列的1矩阵

arrayv2 = np.ones((3,4),dtype=np.int64)

print(arrayv2)

 

# 生成指定步长的矩阵

arrayv3 = np.arange(10,20,3)

print(arrayv3)

 

# 生成一个3*4的矩阵

arrayv4 = np.arange(12).reshape((3,4))

print(arrayv4)

 

# 生成线段,从1开始到10结束,总共有20段

arrayv5 = np.linspace(1,10,5)

print(arrayv5)


 

# numpy的基础运算

arrayv6 = np.array([60,20,30,40])

b = np.arange(4)

 

print(arrayv6,b)

c = arrayv6 + b

print(c)

 

# 平方

 

c = b**2

print(c)

 

# 三角函数

d = 10 * np.cos(arrayv6)

print(d)

 

# 过滤出c中小于5的数,返回的是bool

print(c < 5)

 

# 矩阵之间的元素逐个相乘

c = arrayv4*b

# 矩阵与矩阵相乘

c_dot = np.dot(arrayv4,b)

# 上面写法可变形为

c_dot_v1 = arrayv4.dot(b)

 

# 随机生成一个矩阵

arrayv5 = np.random.random((2,4))

print('arrayv5',arrayv5)

 

# 求和

print(np.sum(arrayv5))

# 求最小值,axis = 0表示对每一列求最小值

print(np.min((arrayv5),axis=0))

# 求最大值,axis = 1表示对每一行求最大值

print(np.max((arrayv5),axis = 1))

 

A = np.arange(14,2,-1).reshape((3,4))

 

# 求A 的最小索引

print(np.argmin(A))

# 求A的最大索引

print(np.argmax(A))

 

# 求平均值

print(np.mean(A))

# 求平均值

print(A.mean())

# 求平均值

print(np.average(A))

# 求中位数

print(np.median(A))

 

# 逐个累加

print(np.cumsum(A))

# 逐个进行累差

print(np.diff(A))

# 逐行进行排序

print(A)

print(np.sort(A))

 

# 矩阵的转置

print(np.transpose(A))

print(A.T)

 

# 使矩阵A中大于9的数变成9,所有小于5的数变成5,介于5和9之间的数则不变

print(np.clip(A,5,9))

# 索引出第二行(从0开始算)

print(A[2])

# 第二行的所有数

print(A[2,:])

# 第一列的所有数

print(A[:,1])

# 第一行,从第一列到第二列的数

print(A[1,1:2])

 

for row in A:

    # 输出每行

    print(row)

 

print('flatten',A.flatten())

 

for item in A.flat:

    print(item)

 

A = np.array([1,1,1])

B = np.array([2,2,2])

# 上下合并两个矩阵

C = np.vstack((A,B))

# 左右合并两个矩阵

D = np.hstack((A,B))

print('C',C)

print('D',D)

 

# 从纵向合并两个矩阵

A = np.array([1,1,1])[:,np.newaxis]

B = np.array([2,2,2])[:,np.newaxis]

 

C = np.concatenate((A,B,B,A),axis=1)

# print(np.hstack(A,A,B))

print('C',C)

 

E = np.arange(2,14).reshape(3,4)

print(E)

# 纵向分割成两个数组

print(np.split(E,2,axis=1))

# 纵向进行不等块的分割成三个数组

print(np.array_split(A,3,axis=1))

print(np.vsplit(E,3))

# 横向分隔

print(np.hsplit(E,2))

 

总结:numpy库主要是以矩阵的形式呈现于大家,因为矩阵的运算速度高于传统形式的运算,所以广泛运用于神经网络和深度学习。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页