import numpy as np
a = np.array([1, 2, 3, 4])
arrange(start=None, stop=None, step=None, dtpye=None)
linspace(start, stop, num=50, endpoint=True)
logspace(start, stop, num=50, endpoint=True, base=10.0)
Numpy中很多操作都是基于axis进行的,所以对axis有个正确的理解十分重要!
(Numpy:对Axis的理解 - 知乎
astype修改数组类型,dtype可查看数组类型也可在创建数组时作为参数指定数组类型,示例代码如下:
import numpy as np
a1 = np.array([1, 2, 3, 4]) #生成整型数组
a2 = a1.astype(float)
a3 = np.array([1, 2, 3, 4], dtype=float) #浮点数
print(a1.dtype); print(a2.dtype); print(a3.dtype)
b = np.array([[1, 2, 3], [4, 5, 6]])
c = np.arange(1,5) #生成数组[1, 2, 3, 4]
d = np.linspace(1, 4, 4) #生成数组[1, 2, 3, 4]
e = np.logspace(1, 3, 3, base=2) #生成数组[2, 4, 8]
使用ones,zeros,eyes,empty,ones_like创建特定类型数组
二维数组的访问可用a[i, j]或a[i][j]
#程序文件 ex2_28.py
import numpy as np
a = np.arange(16).reshape(4,4) #生成 4 行 4 列的数组
b = np.floor(5*np.random.random((2, 4)))
c = np.ceil(6*np.random.random((4, 2)))
d = np.vstack([a, b]) #上下合并矩阵
e = np.hstack([a, c]) #左右合并矩阵
2.矩阵的分割
vsplit(a, m)把 a 平均分成 m 个行数组,hsplit(a, n)把 a 平均分成 n 个列向量。例 2.29 矩阵分割示例。
#程序文件 ex2_29.py
import numpy as np
a = np.arange(16).reshape(4,4) #生成 4 行 4 列的数组
b = np.vsplit(a, 2) #行分割
print('行分割:\n',b[0], b[1])
c = np.hsplit(a, 4) #列分割
print('列分割:\n', c[0], '\n', c[1],
应用场景:
import pandas as pd
参考资料:
pandas提供了Series、DataFrame、Panel三种数据结构。
可从列表、字典、ndarray等创建。
a = pd.Series([9, 8, 7, 6])
# 自定义索引
a = pd.Series([9, 8, 7, 6], index = [‘a’, ‘b’, ‘c’, ‘d’])
# 从ndarray创建
a = pd.Series(np.arange(5), index = np.arange(9, 4, -1))
index 获得索引 .values 获得数据
可从Series,一维ndarray对象,列表等构成的字典,二维ndarray对象创建。
# 从二维ndarray创建
d= pd.DataFrame(np.arange(10).reshape(2,5))
# index, colums 行列自定义索引
读写EXCEL和CSV文件
写文件
to_excel(file_path)
to_csv(file_path)
读文件
pd.read_excel(file_path)
pd.read_csv(file_path)
文件操作
with open(filename, mode, encoding) as fp: #通过文件对象fp读写文件内容
np读取和写入text文件
import numpy as np
a=np.random.rand(6,8) #生成6.8的[0,1)上均匀分布的随机数矩阵
np.savetxt("data2_43_1.txt",a) #存成以制表符分隔的文本文件
np.savetxt("data2_43_2.csv",a,delimiter=',') #存成以逗号分隔的文本文件
b=np.loadtxt("data2_43_1.txt") #加载空格分隔的文本文件
c=np.loadtxt("data2_43_2.csv",delimiter=',') #加载csv文件
# 解非线性方程
from scipy.optimize import fsolve, root
fx = lambda x: x**980-5.01*x**979+7.398*x**978\
-3.388*x**977-x**3+5.01*x**2-7.398*x+3.388
x1=fsolve(fx,1.5,maxfev=4000) #函数调用4000次
x2 = root(fx, 1.5)
print(x1,'\n','-------------'); print(x2)
符号计算
plot(x, y, s)
# x表示横坐标
# y表示纵坐标
# s指定线条颜色、线条样式和数据点形状的字符串
Python绘制六种可视化图表详解(建议收藏) - 掘金