一.numpy

1. 生成数组

比较熟悉的:np.array(),a = np.array((1,2,3,4,5)),a = np.array(([1,2,3],[4,5,6]))

注:不能写np.array(1,2,3,4),因为array()的参数必须是一个元组,多维序列用列表分开,放在这个元组里面

比较陌生的:

  • np.linspace(起始值, 终止值, num=生成数量)
    • 生成包含两个端点的 等差 一维数组。
  • np.logspace(起始值, 终止值, num=生成数量, [base=指定对数的底]),若不指定,默认以10为底
    • 生成从 底^起始值 到 底^终止值 的num个等比数列。
    • 比如:np.logspace(-2,2,7,base=5) —— 生成从5^-2 到 5^2 的长度为7的等比数列。
import numpy as np

x = np.linspace(1, 10, 5)
print(x)

y = np.logspace(0,3,4)  #从10的0次方到10的3次方,长度为4的等比数列
print(y)

生成0和1的数组:

np.zeros(行数, 列数)

np.ones(行数, 列数)

np.identity(行数):生成单位矩阵,长度等于宽度

a = np.identity(4)
print(a)

2. 数组与数组运算

两个数组相乘:

和矩阵乘法无关,只能是两数组对应位置相乘,且两个数组列数必须相等。

要保证两数组能对应位置相乘,要么是1维乘n维,要么是n维乘n维

import numpy as np

a = np.array((10, 20, 30))
b = np.array(([1, 2, 3], [4, 5, 6], [7, 8, 9]))

print(a * b)

可以看到,输出结果相当于 [1*10 , 2*20 , 3*30], [4*10 , 5*20 , 6*30] , [7*10 , 8*20 , 9*30]

两个数组相除:

输出结果也是 两数组对应位置相除,要么1维和n维,要么n维和n维

a = np.array((10, 20, 30))
b = np.array(([1, 2, 3], [4, 5, 6], [7, 8, 9]))
c = a * b
print(c/b)

3. 向量点积

np.dot(数组1, 数组2)

import numpy as np

a = np.array((1, 2, 3))
b = np.array(([1, 2, 3], [4, 5, 6], [7, 8, 9]))

print(np.dot(a, b))

结果是: [1*1+2*4+3*7 , 1*2+2*5+3*8 , 1*3+2*6+3*9]

import numpy as np

a = np.array((1, 2, 3))
b = np.array((1, 2, 3))

print(np.dot(a, b))

4. 三角函数运算

数组里所有的数都进行会进行该三角函数运算

np.sin(数组)等等。

import numpy as np

a = np.array((1, 2, 3))

print(np.sin(a))
print(np.cos(a))
print(np.tan(a))
print(np.arcsin(a)) 
print(np.arccos(a)) 
print(np.arctan(a)) 

如第一行:sin(1)=0.84 , sin(2)=0.91 , sin(3)=0.14

5. 四舍五入

np.round(数组)

6. 按不同方向的求和

np.sum(数组, [axis=指定方向])

  • 无axis参数:数组所有元素求和
  • axis=0:每列元素求和
  • axis=1:每行元素求和
import numpy as np

a = np.array(([1, 2, 3],
              [4, 5, 6]))

print(np.sum(a))
print(np.sum(a, axis=0))
print(np.sum(a, axis=1))

7. 按不同方向求均值

np.average(数组, [axis=指定方向]), 用法和上面的np.sum()一摸一样

8. 按不同方向求标准差和方差

用法和上面的np.sum()一摸一样

  • 标准差:np.std(数组, [axis=指定方向])
  • 方差:np.var(数组, [axis=指定方向])

9. 按不同方向求元素最大值

np.max(数组, [axis=指定方向]), 用法和上面的np.sum()一摸一样

10. 计算加权平均数

np.sum(a*b)/np.sum(np.bincount(a))

import numpy as np

a = np.array((1, 2, 3))        # 数据为数组a
b = np.array((0.2, 0.7, 0.1))  # 对应权值为数组b

print(np.sum(a*b)/np.sum(np.bincount(a)))

11. 矩阵运算

矩阵不再使用np.array(),而是要使用np.matrix()

矩阵乘法

import numpy as np

a = np.matrix((1, 2, 3))
b = np.matrix((4, 5, 6))

print(a.T * b)

求矩阵平均数、总和、最大值

import numpy as np

a = np.matrix(([1, 2, 3],
               [4, 5, 6],
               [7, 8, 9]))

print(a.mean())  # 平均数
print(a.sum())  # 求和
print(a.max())  # 最大值

二.Matplotlib

1. 坐标标签,图例,标题

  • 坐标标签:
    • pl.xlabel('内容')
    • pl.ylabel('内容')
  • 图例:
    • pl.plot(....., "内容") 之后 pl.legend() 显示图例
  • 标题:
    • pl.title("内容")

2. 折线图外的其他图样

  • 散点图:pl.scatter()
  • 饼状图:plt.pie(),进行设置时要在plot()的参数加set_,具体看Python:数据分析

3. 多个图形在一起显示

多个plt.plot()

三.pandas