numpy联系

和大家分享下今天学习的numpy,作为数据分析的话,numpy还是很有用的,不瞎逼逼了,直接上我今天敲得代码。

import numpy as np

# #创建二维数组
# list2 = [[1,2],[3,4],[5,6]]
#
# twoArray = np.array(list2)
# print(twoArray)
#
# #获取数组的维度
# print(twoArray.ndim)
#
# #获取数组的形状
# print(twoArray.shape)
#
# #获取有多少个元素
# print(twoArray.size)

'''调整数组的形状'''
#four = np.array([[1,2,3],[4,5,6]])

#修改的是原有的
# four.shape = (3,2)
# print(four)

#返回一个新的数组
# four = four.reshape(3,2)
# print(four)

#将多维变成一维数组
# five = four.reshape((6,),order = 'F')
# print(five)
# six = four.flatten(order = 'F')
# print(six)

#数组的形状

# t = np.arange(24)
# print(t)
# print(t.shape)
# #转换成二维
# t1 = t.reshape(4,6)
# print(t1)
# #转换成三维
# t2 = t.reshape((2,3,4))
# print(t2)
# print(t2.shape)

#将数组转换成list
# a = np.array([9,12,88,14,25])
# list_a = a.tolist()
# print(list_a)
# print(type(list_a))

'''Numpy的数据类型'''
# f = np.array([1,2,3,4,5],dtype = np.int16)
# #返回数组中每个元素的字节单位长度
# print(f.itemsize)
# #获取数据类型
# print(f.dtype)
#
# #调整数据类型
# f1 = f.astype(np.int64)
# print(f1.dtype)

#随机生成小数
# import random
# print(round(random.random(),2))
#
# arr = np.array([random.random() for i in range(10)])
# print(arr)
# print(np.round(arr,2))

'''数组的计算'''

'''数组和数的计算'''
# t1 = np.arange(24).reshape((6,4))
#
# print(t1+2)
# print(t1*2)
# print(t1/2)

#数组和数组之间的操作

# t1 = np.arange(24).reshape((6,4))
# t2 = np.arange(100,124).reshape((6,4))
# print(t1+t2)
# print(t1*t2)

#不同形状的多维数组不能计算
# t1 = np.arange(24).reshape((4,6))
# t2 = np.arange(18).reshape((3,6))
# print(t1)
# print(t2)
#
# print(t1-t2)

'''行数或者列数相同的一位数组和多维数组可以进行计算:
行形状相同(会与每一行数组的对应位相操作'''

# t1 = np.arange(24).reshape((4,6))
# print(t1)
# t2  = np.arange(0,6)
# print(t2)
# print(t1-t2)

#列形状相同(会与每一个相同维度的数组的对应位操作

# t1 = np.arange(24).reshape((4,6))
# print(t1)
# t2 = np.arange(4).reshape((4,1))
# print(t2)
# print(t1-t2)

'''数组轴的计算'''

# import numpy as np
# a = np.array([[1,2,3],[4,5,6]])
# #求0轴上的和
# print(np.sum(a,axis = 0))
# #求1轴上的和
# print(np.sum(a,axis = 1))
#
# #计算所有的值得和
# print(np.sum(a))

#三维的数据

# a = np.arange(27).reshape((3,3,3))
# #print(a)
# b = np.sum(a,axis=0)
# print(b)
#
# c = np.sum(a,axis = 1)
# print(c)
#
# c = np.sum(a,axis = 2)
# print(c)

'''数组的索引与切片'''

#一维数组的操作方法
# a = np.arange(10)
# #冒号分割切片参数 start:stop:setp 来进行切片操作
# print(a)
# #从索引2开始到索引7停止,间隔为2
# print(a[2:7:1])
#
# #如果只放置一个参数,如[2],将返回与该索引相对应的单个元素
# print(a[2])
# #如果为[2:],表示从该索引开始以后的所有项都将被提取
# print(a[2:])

'''多维数组的操作方法'''

# t1 = np.arange(24).reshape(4,6)
# print(t1)

# #取一行
# print(t1[1])
# #取连续多行
# print(t1[1:3,])
# #取不连续的多行
# print(t1[[1,2,3]])

#取一列
# print(t1[:,1])
# #取连续的多列
# print(t1[:,1:])
#取不连续的多列
#print(t1[:,[0,2,3]])
#取多个不连续的值
#print(t1[[0,1,1],[0,1,3]])

'''数组中的数值修改'''
# t = np.arange(24).reshape(4,6)
# print(t)
#修改某一行的值
#t[1,:] = 0
#print(t)

#修改某一列的值
#t[:,1] = 0
#print(t)

#修改多个不相邻的点
# t[[0,2],[0,3]] = 0
# print(t)

#可以根据条件修改,比如讲小于10的值改掉
# t[t<10] = 0
# print(t)

'''数组的添加、删除和去重'''
#a = np.array([[1,2,3],[4,5,6]])
# print('第一个数组:')
# print(a)
# print('\n')
#
# print('向数组添加元素:')
# print(np.append(a,[7,8,9]))
# print('\n')
#
# # print('沿轴0添加元素')
# # print(np.append(a,[[7,8,9]],axis=0))
# # print('\n')
#
# print('沿轴1添加元素')
# print(np.append(a,[[7,8,9],[5,5,5]],axis=1))

'''数组中的删除'''
#方法numpt.deleter
#
# a = np.arange(12).reshape(3,4)
# print('第一个数组:')
# print(a)
# print('\n')
#
# # print('未传递Axis参数,在删除之前数组会被展开')
# # print(np.delete(a,5))
# # print('\n')
#
# print('删除每一行中的第二列:')
# print(np.delete(a,1,axis = 1))
# print('\n')


'''数组去重'''

# a = np.array([5,2,6,2,7,5,6,8,2,9])
# print(a)
# print('\n')
#
# print('第一个数组的去重值')
# u = np.unique(a)
# print(u)
# print('\n')
#
# print('去重数组的索引数组')
# u,indices = np.unique(a,return_index = True)
# print(indices)
# print('\n')
#
# print('我们可以看到每个和原数组下标对应的数值:')
# print(a)
# print('\n')
#
# print('去重数组的下标:')
# u,indices = np.unique(a,return_inverse=True)
# print(u)
# print(indices)
# print('\n')
# print('返回去重元素的重复数量:')
# u,indices = np.unique(a,return_counts=True)
# print(u)
# print(indices)

'''数组的拼接'''

#根据轴连接的数组序列

a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])

#要求a,b两个数组的维度相同
# print('沿轴0连接两个数组:')
# print(np.concatenate((a,b),axis=0))
# print('\n')


# print('沿轴1连接两个数组:')
# print(np.concatenate((a,b),axis=1))

#根据轴进行堆叠
# print('沿轴0连接2个数组')
# print(np.stack((a,b),axis=0))
# print('\n')
# print('沿轴1连接2个数组')
# print(np.stack((a,b),axis =1))

# v1 = [[0,1,2,3,4,5],
#       [6,7,8,9,10,11]]
#
# v2 = [[12,13,14,15,16,17],
#       [18,19,20,21,22,23]]
# result = np.stack((v1,v2))
# print(result)
#
# result1 = np.hstack((v1,v2))
# print(result1)

'''数组的分割'''

#arr = np.arange(9).reshape(3,3)

#将数组分为3个大小相等的子数组
# b = np.split(arr,3)
# print(b)

#numpy.hsplit函数用于水平分个数组,通过指定要返回的相同形状的数组数量来拆分原数组
# haar = np.floor(10*np.random.random((2,6)))
# print(haar)
# print('拆分后:')
# print(np.hsplit(haar,3))
#
# #沿着垂直轴分割
# print(np.vsplit(haar,2))

'''二维数组的转置'''
# a = np.arange(12).reshape(3,4)
# print('原数组:')
# print(a)
# print('\n')
#
# print('对换数组:')
# print(np.transpose(a))

#与transpose一致
# a = np.arange(12).reshape(3,4)
# print('原数组:')
# print(a)
# print('\n')
#
# print('转置数组:')
# print(a.T)

#函数用于交换数组的两个轴
t1 = np.arange(24).reshape(4,6)
re = t1.swapaxes(1,0)
print('原数组:')
print(t1)
print('\n')

print('调用swapaxes函数后的数组:')
print(re)

以上是我今天对于numpy的一些认识,希望对朋友们有一丝丝的帮助,那本人感觉也是很快乐的,ps:本想今天爬一下周董《说好不哭》歌曲的评论并使用matplotlib绘图的,但是今天敲了不少代码有点困了,以后再和大家分享学习下,嘎嘎!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章