Python库——Numpy处理数据

Numpy一个在Python中做科学计算的基础库,重在数值计算,也是大部分PYTHON科学计算库的基础库,多用于在大型、多维数组上执行数值运算。

numpy基础数据类型和运算

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)

numpy读取文件及其数据

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的方阵

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值