numpy的基本用法與其中的函數

# 引入numpy 重命名爲np

import numpy as np

# 生成一個numpy中的一維數組
# numpy中的數組,存儲的所有數據必須是同質(相同類型)的

a_arr = np.arange(10)

b_arr = np.arange(10)

# 直接使用數組做向量運算的,會把運算作用到數組中的每一個元素中

c_arr = a_arr * b_arr

# 創建數據的幾種方式
# 隨機產生一個指定維度的隨機數數組
# 1.維度數  2.各維度大小

data = np.random.rand(2,3)

print(data)

print('維度個數',data.ndim)

print('各維度大小',data.shape)

print('數據類型',data.dtype)

# python中列表轉換numpy中的數組

list1 = range(10)

print(type(list1))   

<class 'range'>

# 轉換爲數組

arr = np.array(list1)

print(type(arr))

<class 'numpy.ndarray'>

# 嵌套列表轉換爲ndarray

list2 = [range(10),range(10,20)]

type: class 'list' 

[range(0, 10), range(10, 20)]

arr = np.array(list2)

type: class 'numpy.ndarray'

[[ 0  1  2  3  4  5  6  7  8  9]
 [10 11 12 13 14 15 16 17 18 19]]
#  zeros() \ ones() \ empty()函數  創建數組
# 使用zeros()創建指定維度,指定數據類型的數組
# 1.維度信息  2.指定類型
# 如果不指定數據類型,默認全部是0.的float64的數據

zeros_arr = np.zeros((2,3),np.int32)

# 使用ones()函數創建指定維度,指定數據類的數組
# 不指定數據類型,默認是全部爲1的float64類型的數據

ones_arr = np.ones((2,3),np.int32)

# 使用empty()函數創建指定爲度的數組
# 不指定數據類型,默認爲全部爲1的float64的數據

empty_arr = np.empty((2,3))

# 如果想要一個空字符串的數組,可以指定數據類型爲np.str

empty_arr_str = np.empty((2,3),np.str)

# 創建對角線數據全部爲1的數組 數字是幾就是有幾行

identity_arr = np.identity(3,dtype=np.int64)

# 數據類型

# 創建一個數組,指定數據類型

zeros_arr = np.zeros((3,3),np.int64)

# astype()函數,轉換數組中的數據類型

zeros_float_arr = zeros_arr.astype(np.float64)

# 存儲數據爲小數類型,轉換爲整數類型

data_arr = np.array([1.45,2.34,3.14,4.6,6.6,7.8])

# 將float64數據類型轉換爲整數int64類型,只保留整數部分

int_data_arr = data_arr.astype(np.int64)

# 數組的運算

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

arr2 = np.array([[4,5,6],[7,8,9]])

# 乘法運算   會把運算作用數組中的每一個元素中  arr*3

# 乘方 arr**2

# 矩陣(數組)加減乘除運算 arr+arr  arr-arr2 arr/arr2 arr*arr2

# BMI體重計算器,計算若干人員的身高體重比
# BMI = 體重/身高(m)^2
# 有兩個數組,一個存放體重  一個存放身高  將身高體重一一計算,把計算結果放入數組
# 1.列表進行運算
weight_list = [65,75,85]
height_list = [1.7,1.75,1.8]
result =[]
for x in range(len(weight_list)):
    bmi = weight_list[x]/(height_list[x]*height_list[x])
    result.append(bmi)
print(result)
# 2.array數據運算
w_arr = np.array(weight_list)
h_arr = np.array(height_list)
# 直接使用數組做向量運算
rs_arr = w_arr/(h_arr**2)
print(rs_arr)

# 表達式返回的是存放布爾類型化數據數組
is_ok = rs_arr >=23
print(is_ok)
print(is_ok.dtype)
# 通過is_ok數據可以將數組中數據取出來
# 取出bmi大於等於23的身高和體重
# 把True對應的數據取出來
w_rs = w_arr[is_ok]
print(w_rs)
h_rs = h_arr[is_ok]
print(h_rs)

# 條件索引
year_arr = np.array([
    [2000,2013,2015],
    [2008,2019,2007],
    [2010,2012,2017]
])
# 篩選出大於等於2015的年份
is_year_after = year_arr >= 2015
print(is_year_after)

# 根據篩選的結果布爾數據取出數據

filter_year = year_arr[is_year_after]

# 等同於上面的寫法

filter_year = year_arr[year_arr>=2015]

# 多個條件同時成立

filter_year = year_arr[(year_arr>=2007)&(year_arr%4==0)]

# 多個條件有一個成立即可 | 或者

filter_year = year_arr[(year_arr>=2007)|(year_arr%2==0)]

# 數組的切片

arr = np.arange(10)

# 數據中的索引從0開始,依次+1

# 切片

print(arr[2::3])  從索引2開始隔三個數取數

# reshape()把一維數組轉換爲多維數組
# 轉換之後的數據總個數必須等於轉換之前的個數

arr2 = np.arange(12).reshape(3,4)

# 多維數組通過組合索引取值

print(arr2[1,1])

# 切片

print(arr2[0:2])

print(arr2[0:2,2:])

print(arr2[:,1:3])

# 數組的轉置

arr3 = np.random.rand(2,3)

arr4 = arr3.transpose()

arr5 = arr4.reshape(6)

import numpy as np

# 隨機生成一個二維數組

arr = np.random.rand(2,3)

# 向上取整  np.ceil(arr)

# 向下取整 np.floor(arr)

# 四捨五入 np.rint(arr)

# 判斷數組中的元素是否爲空 NaN  np.isnan(arr)

# 讓數組中的元素相乘 

arr1 = np.arange(10).reshape(5,2)

arr2 = np.array([

    [5,2],

    [2,5],

    [3,4],

    [1,2],

    [3,7]

])

print(arr1*arr2)     print(np.multiply(arr1,arr2))

# 相除

print(np.divide(arr1,arr2。astype(np.float64)))

# 常用的統計函數

arr = np.arange(10).reshape(5,2)

# 相加 print(np.sum(arr))

# 計算平均數 print(np.mean(arr))

# 最大值 print(np.max(arr))

# 最小值 print(np.min(arr))

# 方差 print(np.var(arr))

# 標準差 print(np.atd(arr))

# 最大值的下標(索引) print(np.argmax(arr))

# 最小值的下標(索引) print(np.argmin(arr))

# 累加計算  print(np.cumsum(arr))

# 累乘  print(np.cumprod(arr))

# where() 函數

arr = np.random.rand(2,3)

# 更改數組中的數據

arr[0,1] = 1

# where()函數
# 1.條件  2.條件成立時取得數據  3.條件不成立時 取得數據

print(np.where(arr>0.5,1,0))

# any()函數 表示數組中至少有一個符合條件的元素,返回True,否則返回False

print(np.any(arr>=1))

# all()函數 表示數組中的元素必須全部符合條件時,返回True,否則返回False

print(np.all(arr>=0.5))

# unique() 返回數組中的唯一值,返回一個排好序的一維數組

arr1 = np.array([[4,6,3],[1,2,3],[4,5,6]])

print(np.unique(arr1))

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