数据分析第四天

数组

去重:
uniuqe方法,可以去除重复值,不改变原数组,返回的是去掉重复的数组,并且自动按照从小到大排列

arr = np.array([21,2,21, 1, 0 ,1])
np.unique(arr, axis=None)

去重后整行与整列去重:
axis=0表示对比整行数,如果整行值都相同,则进行去重;
axis=1表示对比整列数,如果整列值都相同,则进行去重;

arr2 = np.array([[2,1,1,2],[2,1,1,2],[1,3,2,5]])
print(np.unique(arr2, axis=0))
#输出的是:
array([[1, 3, 2, 5],
      [2, 1, 1, 2]])
arr2 = np.array([[2,1,1,2],[2,1,1,2],[1,3,2,5]])
print(np.unique(arr2, axis=1))
#输出的是:
  array([[1, 1, 2, 2],
           [1, 1, 2, 2],
           [2, 3, 1, 5]])

文件操作
a、二进制文件操作; b.文本文件

.npy / .npz:二进制文件, 必须通过numpy来操作;

#a、二进制文件的生成与读取:
#创建一个随机数组
arr3 = np.random.random(100).reshape((10,10))
#生成一个二进制数组
np.save('arr.npy', arr3) #默认是npy二进制文件
#b.读取二进制文件:
np.load('arr.npy')
#c.多个数组的保存与读取:
#创建两个数组
arr = np.array([21,2,21, 1, 0 ,1])
arr1 = np.random.random(1000).reshape((10, 100))
#保存为npz文件
np.savez('arrz', arr, arr1)
#读取npz文件
data = np.load('arrz.npz')
print(data)

输出结果为:<numpy.lib.npyio.NpzFile object at 0x0000000012BCFBA8>
详细查看有几个文件可以用list方法:list(data),可以看到是有[‘arr_0’, ‘arr_1’]两个文件

print(data['arr_0'])

输出的是:[21 2 21 1 0 1]

txt文件的保存与读取:fmt:保存的小数类型,delimiter:元素之间以什么字符分割,dtype:打开的类型

#d、.txt文件的保存与读取
#先保存为txt文件
np.savetxt('arr2', arr2, fmt='%d', delimiter=',' )
#读取文件
arr = np.loadtxt('arr2', delimiter=',',dtype='str')
print(arr)

统计分布方法:
a 、最大值(max),最小值(min)

arr = np.array([[1, 2, 4, 6], [2, 2, 4, 20], [3, 9, 20, 5]])
print(arr)

(1) 最小值

print('获取整个数组中最小的值:\n', arr.min())
print('获取每一行的最小值:\n', arr.min(axis=1))
print('获取每一列的最小值:\n', arr.min(axis=0))
# 获取整个数组中最小的值:
#  1
# 获取每一行的最小值:
#  [1 2 3]
# 获取每一列的最小值:
#  [1 2 4 5]

(2)最大值

print(arr.max())
print(arr.max(axis=1))
print(arr.max(axis=0))
#20
#[ 6 20 20]
#[ 3  9 20 20]

(3)最大值索引

print(arr.argmax())
print(arr.argmax(axis=1))
print(arr.argmax(axis=0))

(4)最小值索引;

print(arr.argmin())

(5-6)标准差与方差
方差与标准差可以反映数据的分布:
当标准差与方差越大, 表示数据越分散;
当标准差与方差越小, 数据越集中;

print('标准差:\n', arr.std(axis=1))
print('方差:\n', arr.var())

(7-8)求和与求均值

print(arr.sum())
print('按行求和:\n', arr.sum(axis=1))
print('按列求和:\n', arr.sum(axis=0))
print('求均值:\n', arr.mean())

(9)累计求和

print(arr.cumsum())

(10)累计求积

arr_2 = arr.cumprod()
print('累计求积:\n', arr_2)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值