numpy和pandas学习笔记(更新中)

一、numpy的基本运算操作

导入numpy包

import numpy as np

# 定义array的类型
# a = np.array([2, 3, 4], dtype=np.int64)
# a = np.array([2, 3, 4], dtype=np.int32)
#
# a = np.array([2, 3, 4], dtype=np.float64)
# a = np.array([2, 3, 4], dtype=np.float32)

# 多维数组
# a = np.array([[1, 2, 3],
#               [4, 5, 6],
#               [6, 7, 8]])

# 生成三行四列的0矩阵
# a = np.zeros((3,4))
# print(a)
#
# # 生成三行四列的1矩阵
# a = np.ones((3,4))
# print(a)

# 生成一个空矩阵
# a = np.empty((3, 4))
# print(a)


# 生成[10 12 14 16 18]
# a = np.arange(10,20,2)
# print(a)

# 重新定义array的shape
# a = np.arange(12).reshape((3,4))
# print(a)

# 生成一个线段,例如生成一个5段的从1到10的数列
# a = np.linspace(1,10,5)
# print(a)


# array的减法(加减乘除都一样)
# a = np.array([10,20,30,40])
# b = np.arange(4)
#
# print(a,b)
# # c = a-b
# # 注意python中的平方表示方法用双星号**
# c = b**2
# print(c)


# numpy当中如何求三角函数
# a = np.array([10,20,30,40])
# b = np.sin(a)
# print(b)

# b = np.arange(4)
# print(b)
# print(b<3)
#
# # 使用numpy进行二维矩阵的运算
# a = np.array([[1, 1],
#              [0, 1]])
#
# b = np.arange(4).reshape((2, 2))
#
# print(a)
# print(b)
#
# # 两个矩阵对应元素逐个相乘
# c = a*b
# # 使用矩阵乘法
# c_dot = np.dot(a,b)
# c_dot_2 = a.dot(b)
#
# print(c)
# print(c_dot)
# print(c_dot_2)
# 计算两个矩阵相加.
a = np.random.randint(0,10,size=[3,4])
b = np.random.randint(0,10,size=[3,4])
print(a)
print(b)
c = a+b
print(c)
# 创建一个随机生成的array
# a = np.random.random((2,4))
#
# print(a)
#
# print(np.sum(a))
# print(np.min(a))
# print(np.max(a))
# print(np.max(a,axis=1))



A = np.arange(2,14).reshape((3,4))
print(A)
# 最小值的索引
print(np.argmin(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(np.nonzero(A))
# 对矩阵中的元素进行排序(按照逐行进行排序)
A = np.arange(14,2,-1).reshape((3,4))
print(A)
print(np.sort(A))

# 矩阵的翻转
print(np.transpose(A))
# 或者写成
print(A.T)

# 把矩阵截断
print(np.clip(A,5,9))

# 计算矩阵每一行或者每一列的平均值
print(np.mean(A,axis=1)) # axis=1表示对行进行计算
print(np.mean(A,axis=0)) # axis=0表示对列进行计算
# 2022.1.24
# numpy的一维索引
# A = np.arange(3,15)
# print(A)
# print(A[3])

# # 二维索引
# A = np.arange(3,15).reshape((3,4))
# print(A)
# print(A[2])
# # 索引出单个元素
# print(A[1][2])
# 或者print(A[1,2])

# 注意索引下标都是从0开始的
# 索引出一行所有的元素,用:
# print(A[2,:])
# # 第一列的所有的数
# print(A[:,1])
# # 输出第一行中的第一列到第三列的数,注意前闭后开
# print(A[1,1:3])

# for循环迭代每一行
# for row in A:
#     print(row)

# for循环迭代每一个列
# 先转置,在迭代转置矩阵的行
# for column in A.T:
#     print(column)
#
# # 用for循环访问数组(矩阵)中的每一个项
# print(A.flatten())
# for item in A.flat:
#     print(item)
#

# 2022.1.25
# numpy array的合并
# A = np.array([1,1,1])
# B = np.array([2,2,2])
#
# # 上下合并
# print(np.vstack((A,B)))
# # 左右合并
# print(np.hstack((A,B)))
# # 将A进行转置
# print(A[:,np.newaxis])
#
# A = np.array([1,1,1])[:,np.newaxis]
# B = np.array([2,2,2])[:,np.newaxis]
# # 多个array进行合并
# C = np.concatenate((A,B,B,A),axis=0)#axis=0表示列合并
# print(C)
# C = np.concatenate((A,B,B,A),axis=1)#axis=0表示行合并
# print(C)


# array的分割
A = np.arange(12).reshape((3,4))
print(A)
# 对列axis=1进行分割
print(np.split(A,2,axis=1))
# 对行进行分割
print(np.split(A,3,axis=0))
# 在numpy中进行不等量的分割
print(np.array_split(A,3,axis=1))

# 分割方法2
print(np.vsplit(A,3))# 横向分割
print(np.hsplit(A,2))# 纵向分割

# numpy的copy和deep copy
a = np.arange(4)
print(a)
b = a
c = a
d = b

# 直接用=会是的两个矩阵相关联,改变任意矩阵,其余的矩阵就会跟着改变
a[0] = 11
print(a)
print(b)
print(c)
print(d)

# 赋值却不关联的方法 ,使用copy函数
b = a.copy() #deep copy的方法
a[1] = 0
print(a)
print(b)

你可能感兴趣的:(python,python,矩阵,numpy)