主頁(yè) > 知識(shí)庫(kù) > 淺談Python numpy創(chuàng)建空數(shù)組的問(wèn)題

淺談Python numpy創(chuàng)建空數(shù)組的問(wèn)題

熱門(mén)標(biāo)簽:地圖標(biāo)注線上如何操作 河北防封卡電銷(xiāo)卡 400電話辦理哪種 應(yīng)電話機(jī)器人打電話違法嗎 開(kāi)封語(yǔ)音外呼系統(tǒng)代理商 手機(jī)網(wǎng)頁(yè)嵌入地圖標(biāo)注位置 開(kāi)封自動(dòng)外呼系統(tǒng)怎么收費(fèi) 天津電話機(jī)器人公司 電銷(xiāo)機(jī)器人的風(fēng)險(xiǎn)

一、問(wèn)題描述:

有一個(gè)shape為(308, 2)的二維數(shù)組,以及單獨(dú)的一個(gè)數(shù)字,需要保存到csv文件中,這個(gè)單獨(dú)的數(shù)字讓其保存到第3列第一行的位置。

二、具體的實(shí)現(xiàn):

首先要想把一個(gè)(308, 2)的二維數(shù)組和一個(gè)數(shù)字給拼接起來(lái),直接拼接沒(méi)辦法實(shí)現(xiàn),因?yàn)樾袛?shù)和列數(shù)都不同的兩個(gè)ndarry是無(wú)法拼接的(此處按照目前我學(xué)的理解,是無(wú)法直接拼接的,如果可以的話,麻煩評(píng)論一下)。

然后我首先想到的解決方法就是先建一個(gè)(308,1)的二維數(shù)組,然后令這個(gè)二維數(shù)組的第一個(gè)元素設(shè)置成那個(gè)數(shù)字,然后進(jìn)行拼接,保存。

為使數(shù)據(jù)可以顯示完全,以僅以3行數(shù)據(jù)為例:

>>> a = np.ones((3,2))
>>> b = 0.2
>>> _b = np.empty((3,1))
>>> _b[0, 0] = b
>>> c = np.c_[a, _b]
>>> print(c)
[[1.00000000e+000 1.00000000e+000 2.00000000e-001]
 [1.00000000e+000 1.00000000e+000 2.12199579e-313]
 [1.00000000e+000 1.00000000e+000 2.54639495e-313]]
>>>

但是這樣,我把結(jié)果保存到文件時(shí),第3列的除第一行,其他的行是有數(shù)據(jù)的,我不想讓它顯示數(shù)據(jù)。
也就是empty這個(gè)函數(shù)只是創(chuàng)建一個(gè)未初始化的數(shù)組,實(shí)際上里面的數(shù)值都是垃圾值。

那么如何去實(shí)現(xiàn)視覺(jué)上沒(méi)有數(shù)據(jù)呢,其實(shí)利用空的字符串就可以了。

所以就通過(guò)np.ones設(shè)置dtype為str,此時(shí)生成的是元素都為空字符串的數(shù)組,(具體的原因還不清楚),然后此時(shí)若直接設(shè)置第一行的元素為某個(gè)值,是不行的,會(huì)自動(dòng)變?yōu)?0‘,只有在拼接之后,然后再給它賦值才可以,這個(gè)地方我不是很理解,但是結(jié)果是正確的。

三、完整代碼:

y_true = np.ones((3, 1), dtype=np.int)
y_pred = np.ones((3, 1), dtype=np.int)
y = np.c_[y_true, y_pred]

accuracy = np.zeros(shape=(y_true.shape[0], 1), dtype=np.str)

# 此時(shí)若設(shè)置accuracy[0, 0] = '0.89',最終accuracy[0, 0]存的是'0',具體原因還不清楚

res = np.c_[y, accuracy]  # 先拼接起來(lái)
res[0, 2] = '0.89'  # 然后再設(shè)置就可以了

res = pd.DataFrame(res, columns=['y_true', 'y_pred', 'accuracy'])
res.to_csv('1.csv')  # 保存到文件中

從文件中讀取的時(shí)候,直接讀出來(lái),空白的地方被賦值為nan

a = pd.read_csv('1.csv', usecols=(1, 2, 3))
a = a.values
print(a, type(a), a.dtype)

關(guān)于np.nan需要注意的地方如下:

  • np.nan不是空對(duì)象。
  • 對(duì)列表中的nan進(jìn)行操作時(shí)不能用"==np.nan"來(lái)判斷。只能用np.isnan()來(lái)操作。
  • np.nan的數(shù)據(jù)類(lèi)型是float。
import numpy as np
 
np.nan == np.nan
Out[3]: False
 
aa = np.array([1,2,3,np.nan,np.nan,4,5,np.nan])
aa
Out[5]: array([  1.,   2.,   3.,  nan,  nan,   4.,   5.,  nan])
 
aa[aa==np.nan] = 100  #錯(cuò)誤方式
aa
Out[7]: array([  1.,   2.,   3.,  nan,  nan,   4.,   5.,  nan])
 
aa[np.isnan(aa)] = 100  #對(duì)nan操作的正確方式
aa
Out[9]: array([   1.,    2.,    3.,  100.,  100.,    4.,    5.,  100.])
 
type(np.nan)
Out[10]: float

關(guān)于參考:https://www.jb51.net/article/212249.htm

到此這篇關(guān)于淺談Python numpy創(chuàng)建空數(shù)組的問(wèn)題的文章就介紹到這了,更多相關(guān)numpy創(chuàng)建空數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python NumPy灰度圖像的壓縮原理講解
  • Python多進(jìn)程共享numpy 數(shù)組的方法
  • python中sqllite插入numpy數(shù)組到數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法
  • python圖像處理基本操作總結(jié)(PIL庫(kù)、Matplotlib及Numpy)
  • python numpy中multiply與*及matul 的區(qū)別說(shuō)明
  • Python NumPy中diag函數(shù)的使用說(shuō)明
  • Python機(jī)器學(xué)習(xí)三大件之一numpy
  • python利用numpy存取文件案例教程

標(biāo)簽:六盤(pán)水 宿遷 山東 常州 駐馬店 蘭州 江蘇 成都

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談Python numpy創(chuàng)建空數(shù)組的問(wèn)題》,本文關(guān)鍵詞  淺談,Python,numpy,創(chuàng)建,空,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談Python numpy創(chuàng)建空數(shù)組的問(wèn)題》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于淺談Python numpy創(chuàng)建空數(shù)組的問(wèn)題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章