Numpy一个在Python中做科学计算的基础库,重在数值计算,也是大部分PYTHON科学计算库的基础库,多用于在大型、多维数组上执行数值运算。
import numpy as np
import random
'''
#生成1~5的数组,三种方式效果相同
a = np.array([1,2,3,4,5])
b = np.array(range(1,6))
c = np.arange(1,6)
print(a)
print(type(b)) #数组的类名
print(c.dtype) #数据的类型
'''
'''
#指定数组的数据类型
a = np.array([1,0,1,0],dtype=np.bool)
print(a)
#修改数据类型
print(a.astype("u1"))
print(a.astype(np.int8))
'''
'''
#修改浮点型的小数位数
b = np.array([random.uniform(0.1,0.9) for i in range(10)])
print(b)
print(np.round(b,2)) #四舍五入
'''
'''a = np.array([[2,3,4,5,6,4],[6,7,8,5,3,5]])
print(a)
print(a.shape) #a的形状
print(a.reshape(3,4)) #修改a的形状(临时),并不是永久的
b = a.reshape(3,4)
print(b)
#转化为一维数组
print(b.flatten())'''
#数组的计算
'''a = np.array([[2,3,4,5,6,4],[6,7,8,5,3,5]])
b = np.array([[1,3,6,5,7,1],[2,1,4,5,3,9]])
# print(a+1)
# print(a*2)
print(a+b)
print(a*b)'''
a = np.array([[2,3,4,5,6,4],[6,7,8,5,3,5]])
b = np.array([2,3,4,5,6,4])
print(a+b)
print(a*b)
import numpy as np
us_file_path = "../data/us.csv"
gb_file_path = "../data/gb.csv"
#路径 分隔符 类型 转置
# t1 = np.loadtxt(us_file_path,delimiter=",",dtype=int,unpack=False)
# t2 = np.loadtxt(gb_file_path,delimiter=",",dtype=int)
# print(t1.transpose())
# print(t1[0]) #一行
# print(t1[:,1]) #一列
# print(t1[1:3]) #多行
# print(t1[:,2:3]) #多列
# t1[:,1:2] = 1 #修改第二列
# print(t1)
'''t = np.arange(24).reshape((4,6)) #t为1~24的数
# print(t)
# print(t<10) #<10,true,>10,false
# t[t<10]=0 #<10=0
# print(t)
# print(np.where(t<10,0,10)) #三元运算符,<10:0,>10:10
# print(t.clip(10,18)) #<10:10,>10:18
t = t.astype(float)
t[1,1] = np.nan
# print(t)
print(np.count_nonzero(t!=t)) #两个nan不相等,可以得出数组中nan的个数
print(np.isnan(t[1,1])) #判断是否为nan'''
t = np.arange(24).reshape((4,6)) #t为1~24的数
print(t)
print(t.sum(axis=None))
print(t.mean(axis=None)) #均值
print(np.median(t,axis=None)) #中值
print(t.max(axis=None))
print(t.min(axis=None))
print(np.ptp(t,axis=None)) #极值:最大值与最小值之差
print(t.std(axis=None)) #标准差:越大越不稳定
import numpy as np
'''
t1 = np.array(range(0,6))
t2 = np.array(range(6,12))
print(np.vstack((t1,t2))) #竖直拼接
print(np.hstack((t1,t2))) #水平拼接
'''
'''
t = np.arange(12,24).reshape(3,4)
print(t)
# t[[0,1],:] = t[[1,0],:] #行交换 # [0,1]表示为第一行、第二行,逗号前是表示行的参数,逗号后的表示列,冒号表示所有列
# print(t)
#
# t[:,[1,2]] = t[:,[2,1]] #列交换
# print(t)
print(np.argmax(t,axis=0)) #在0轴寻找最大的索引(行
print(np.argmax(t,axis=1)) #在1轴寻找最大的索引(列
'''
print(np.zeros((3,3))) #全为0的数组
print(np.ones((3,3))) #全为1的数组
print(np.eye(3)) #对角线为3的方阵