日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Interview:算法岗位面试—10.11下午—上海某公司算法岗位(偏机器学习,互联网数字行业)技术面试考点之XGBoost的特点、python的可变不可变的数据类型、赋值浅拷贝深拷贝区别

發布時間:2025/3/21 python 36 豆豆

ML崗位面試:10.11下午—上海某公司算法崗位(偏機器學習,互聯網數字行業)技術面試考點之XGBoost的特點、python的可變不可變的數據類型、賦值淺拷貝深拷貝區別

Interview:算法崗位面試—10.11下午—上海某公司算法崗位(偏機器學習,互聯網數字行業)技術面試考點之XGBoost的特點、python的可變不可變的數據類型、賦值淺拷貝深拷貝區別

導讀:其實,考察的知識點,博主都做過,但是,emmm,這些知識點,在我寫代碼中,幾乎不會用到,so,會遺忘。所以,還需要下功夫,去多回憶回憶啦。

目錄

XGBoost的特點

1、XGBoost的損失函數

Python語言基礎知識點考察

1、可變不可變的數據類型

2、賦值、淺拷貝、深拷貝區別


XGBoost的特點

1、XGBoost的損失函數

往期文章:ML之XGBoost:XGBoost算法模型(相關配圖)的簡介(XGBoost并行處理)、關鍵思路、代碼實現(目標函數/評價函數)、安裝、使用方法、案例應用之詳細攻略

Python語言基礎知識點考察

1、可變不可變的數據類型

python中主要有6種標準數據類型,分為可變和不可變兩類。
不可變類型:該數據類型對象所指定內存中的值不可以被改變
(1)、在改變某個對象的值時,由于其內存中的值不可以被改變,所以,會把原來的值復制一份再進行改變,這樣就會計算機會開辟一段新的內存空間來存儲新的值。

可變類型:該數據類型的對象所指定的地址上面的值可以被改變
(1)、變量被改變后,其所指向的內存地址上面的值,直接被改變,沒有發生復制行為,也沒有發生開辟新的內存地址行為,不會重新開辟空間

不可變類型—非嵌套數據可變類型—可嵌套數據

Number數字
String字符串

Tuple元組

List列表
Dictionary字典
Set集合

結合拷貝

例子:a = 521
copy.copy 和 copy.deepcopy 沒有區別,都會開辟新空間存儲數據。

結合拷貝

例子:a = [[521], {'521':521}]
copy.copy沒有辦法保證數據的獨立性,拷貝第一層的引用
copy.deepcopy完全拷貝所有的層級,都會有自己的空間。

2、賦值、淺拷貝、深拷貝區別

? ? ? ? 首先,需要明確一點,淺拷貝和深拷貝之間的區別只適用于容器對象(包含其他對象的對象,如列表或類實例)。對于非容器對象沒有區別,都是對象拷貝,相當于重新賦值,生成一個新的對象。

敲重點,面試時,下邊三句回答即可!

  • 簡單的來說,在有指針的情況下,淺拷貝只是增加了一個指針指向已經存在的內存
  • 深拷貝就是增加一個指針且申請一個新的內存,使這個增加的指針指向這個新的內存。
  • 應用copy.copy淺拷貝、copy.deepcopy深拷貝功能的時候,會根據當前拷貝的數據類型,可變類型和不可變類型有不同的處理方式。
    (1)、對于不可變對象(數字、字符串、元祖),淺拷貝和深拷貝是沒有區別的。
    (2)、對于可變對象(列表、字典、集合),淺拷貝第一次層引用,而深拷貝是完全拷貝。

1、賦值—對象賦值實際上是簡單的對象引用

比較簡單,賦值就是對物體進行貼標簽操作,作用于同一物體。

  • 賦值:值不變,地址不變;
  • copy淺拷貝和deepcopy深拷貝:值相等,地址不相等;

2、淺拷貝—只拷貝父對象

A shallow copy constructs a new compound object and then (to the extent possible) inserts references into it to the objects found in the original.
(1)、淺拷貝是指拷貝的只是原對象元素的引用,換句話說,淺拷貝產生的對象本身是新的,但是它的內容不是新的,只是對原對象的一個引用。
(2)、淺拷貝是指把存放變量的地址值傳給被賦值,最后兩個變量引用了同一份地址。

  • 淺拷貝會創建一個新的容器對象(compound object)。
  • 對于對象中的元素,淺拷貝就只會使用原始元素的引用(內存地址)。
常見的淺拷貝操作有:
  • 使用切片操作[:]
  • 使用工廠函數(如list/dir/set)
  • copy模塊的copy()方法

1、淺拷貝的代碼實現

import copy b=copy.copy(a)

3、深拷貝—完全拷貝父對象及其子對象

A deep copy constructs a new compound object and then, recursively, inserts copies into it of the objects found in the original.
(1)、深拷貝是指被賦值的變量開辟了另一塊地址用來存放要賦值的變量的值(內容)。
1、深拷貝的應用: 主要是希望在改變新的數組(對象)的時候,不改變原數組(對象),即原來的東西還要使用。

  • 1)深拷貝和淺拷貝一樣,都會創建一個新的容器對象(compound object)
  • 2)和淺拷貝的不同點在于,深拷貝對于對象中的元素,深拷貝都會重新生成一個新的對象

常見的深拷貝操作有:

  • copy.deepcopy

2、深拷貝的代碼實現

import copy b=copy.deepcopy(a)


?

總結

以上是生活随笔為你收集整理的Interview:算法岗位面试—10.11下午—上海某公司算法岗位(偏机器学习,互联网数字行业)技术面试考点之XGBoost的特点、python的可变不可变的数据类型、赋值浅拷贝深拷贝区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。