Python-numpy-Pandas学习笔记

Numpy

Numpy创建数组

import pandas as pd
import numpy as np

# 生成一个矩阵,后面的dtype是指定矩阵里面的元素类型,numpy定义了自己的数据类型,可以从中选择
a=np.array([1,2,3],dtype=np.float32)
# 生成一个所有的数字都为1的3*3矩阵,后面乘以x,就可以得到所有数字都是x的3*3矩阵
b=np.ones((3,3),dtype=np.float32) *2
# 生成一个所有的数字都为0的3*3矩阵
b1=np.zeros((3,3))
# 生成一个2*2的空矩阵,即所有元素的值都无限接近于0
c=np.empty((2,2,))
# 先生成一个由0-11组成的1*12的矩阵,再调整它的行列,设置成3*4的矩阵
d=np.arange(12).reshape((3,4))
# 生成一个线性的数字,第一个参数是初始值第二个参数最终值,第三个参数是生成数字的个数
# 同样也可以对它的行列进行调整,设置成2*5的矩阵
e=np.linspace(0,11,10).reshape((2,5))



print(e)

Numpy的基本运算1

import pandas as pd
import numpy as np

a=np.array([10,20,30,40])
a_dot=a.reshape((2,2))
b=np.arange(4)
b_dot=b.reshape((2,2))

# 减法
c=a-b

# 加法
d=a+b

# 幂次运算,b的三次方
e=b**3

# 判断b中的那些数字是小于3的
f=b<3

# 逐个相乘
g=a_dot*b_dot
g_dot1=np.dot(a_dot,b_dot)
g_dot2=a_dot.dot(b_dot)
print(g)
print()
print(g_dot1)
print()
print(g_dot2)

# 随机生成数字
# 生辰一个2*3的由0-1组成的矩阵
h=np.random.random((2,3))
print(h)
# 计算最大,最小,和
# 计算h中的最大数字
print("Max:{}".format(np.max(h)))
# 计算h中的最小数字
print("Min:{}".format(np.min(h)))
# 计算h中所有数字的和
print("Sum:{}".format(np.sum(h)))
# 计算每一列的最大值
print(np.max(h,axis=1)) #0表示列,1表示行
# 计算每一行的和
print(np.sum(h,axis=0)) #0表示列,1表示行

Numpy的基本运算2

import pandas as pd
import numpy as np

A=np.arange(2,14).reshape(3,4)
print(A)
# 获取矩阵中最大值的索引
print(np.argmax(A))
# 获取矩阵中最小值的索引
print(np.argmin(A))
# 求整个矩阵的平均值
print(np.mean(A))
print(A.mean())
print(np.average(A))
# 整个矩阵的中位数
print(np.median(A))

# 累加cumsum()
print(np.cumsum(A))
# 累差--->即第二个数和第一个数字的差,第三个数字和第二数字的差
print(np.diff(A))
# 对矩阵的每一行进行排序
b=np.random.random(12).reshape((3,4))*100
print(b)
print("Sorted Matrix:{}".format(np.sort(b)))

# 矩阵的转置
c=np.array([[1,2,3],
            [4,5,6]])
d=np.transpose(c)
print(c)
print("Transposed:{}".format(d))
print("Transposed:{}".format(c.T))


# clip --> np.clip(A,5,9)-->把矩阵A中所有大于9的数字都变成9,所有小于5的数字都变成5
print(A)
print(np.clip(A,5,9))

Numpy的索引

import pandas as pd
import numpy as np

a=np.arange(3,15)
# 用位置索引获取元素 获取a矩阵的第三个元素
print(a)
print(a[3])

# 用两个索引对一个三行四列的矩阵进行索引取值
# 取出第三行第二个位置的值
b=a.reshape((3,4))
print(b[2,1])
# 取出一个列或者行
print(b[1,:])# 第二行的所有数字
print(b[0,:]) #第一行的所有数字
print(b)
print("\n")
# 遍历矩阵
# 打印每一行
for row in b:
    print(row)
print("\n")
# 打印每一列,numpy本身没有提供一个这样的函数,但是可以通过遍历b的转置矩阵的行来代替
for column in b.T:
    print(column)

# 迭代矩阵中的所有元素,用a.flat可以把一个多维的矩阵变成一维的,然后直接遍历就可以
print(b.flatten())
for item in b.flat:
    print(item) 
Numpy的数组合并

Numpy的数组分割

Numpy的 复制和深度复制

Pandas

参考视频

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章