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繪圖的,但是今天敲了不少代碼有點困了,以後再和大家分享學習下,嘎嘎!

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