# encoding=utf-8
import numpy as np
from numpy.linalg import *
def main():
# 1、最基本的array
lst = [[1, 3, 5], [2, 4, 6]]
print(type(lst)) # <class 'list'>
np_lst = np.array(lst)
print(type(np_lst)) # <class 'numpy.ndarray'>
# 指定数据类型 bool int int8/16/32/64/128 uint8/16/32/64/128 float/16/32/64 complex64/128
np_lst1 = np.array(lst, dtype=np.float)
# 相关属性
print(np_lst1.shape) # 形状
print(np_lst1.ndim) # 维度
print(np_lst1.dtype) # 类型
print(np_lst1.itemsize) # 每个元素的大小(字节)
print(np_lst1.size) # 大小(元素个数)
# 2、常用的数组
print(np.zeros([2, 4])) # 零
print(np.ones([3, 5])) # 壹
print("Rand:")
print(np.random.rand())
print(np.random.rand(2, 4))
print(np.random.randint(1, 10, 3))
# 正态分布
print("Randn:")
print(np.random.randn(2, 4))
# 从提供的数字里面挑选
print("Choice:")
print(np.random.choice([10, 20, 30]))
# 生成其他分布
print("Distribute:")
print(np.random.beta(1, 10, 20))
# 3、numpy的相关操作
# 单个数组
lst2 = np.arange(1, 11).reshape([2, 5])
print(lst2)
print("Exp:") # 指数(以e为底)
print(np.exp(lst2))
print("Exp2:") # (以2为底)
print(np.exp2(lst2))
print("Sqrt:") # 开方
print(np.sqrt(lst2))
print("Sin:") # 求正弦
print(np.sin(lst2))
print("Log:") # 求对数
print(np.log(lst2))
print("Sum:") # 求和 可以传入axis=?
print(lst2.sum(axis=0)) # axis越大 层次越深
print("Max:") # 求最大值 axis=? Min一样
print(lst2.max())
# 两个数组
a = np.array([11, 22, 33, 44])
b = np.array([1, 2, 3, 4])
# 加减乘除
print("Add: %s" % (a+b))
print("Sub: %s" % (a-b))
print("Mul: %s" % (a*b))
print("Div: %s" % (a/b))
print("Dot:") # 点乘
print(np.dot(a.reshape([2, 2]), b.reshape([2, 2])))
print("Cancatenate:")
print(np.concatenate((a, b), axis=0))
print(np.vstack((a, b)))
print(np.hstack((a, b)))
print(np.split(a, 2))
# 4、矩阵运算 线性方程 # 先引入线性包from numpy.linalg import *
print(np.eye(3))
juzhen = np.array([[1, 2],
[3, 4]])
print("Inv: %s" % inv(juzhen)) # 矩阵的逆
print("T: %s" % juzhen.transpose()) # 矩阵的转秩
print("Det: %s" % det(juzhen)) # 矩阵的行列式
print("Eig:")
print(eig(juzhen)) # 矩阵的特征值和特征向量
# 解线性方程
print("Solve:")
y = np.array([[5], [7]])
print(solve(juzhen, y))
# 5、其他领域的应用
print("FFT:") # 信号处理
print(np.fft.fft(np.array([1, 1, 1, 1, 1, 1, 1])))
print("Coef:") # 皮尔逊系数
print(np.corrcoef([1, 0, 1], [0, 2, 1]))
print("Poly:") # 一元多次函数
print(np.poly1d([2, 1, 3])) # 2x^2 + x +3
if __name__ == "__main__":
main()
scipy参考链接:
1、https://docs.scipy.org/doc/scipy-0.7.x/reference/
pandas参考链接:
1、http://pandas.pydata.org/pandas-docs/stable/cookbook.html#cookbook
2、https://www.analyticsvidhya.com/blog/2016/01/12-pandas-techniques-python-data-manipulation/
来源:https://www.cnblogs.com/xiaxuexiaoab/p/8584734.html