numpy.loadtxt()

簡(jiǎn)介

np.loadtxt()用于從文本加載數(shù)據(jù)。
文本文件中的每一行必須含有相同的數(shù)據(jù)。


loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)

  • fname要讀取的文件、文件名、或生成器。
  • dtype數(shù)據(jù)類(lèi)型,默認(rèn)float。
  • comments注釋。
  • delimiter分隔符,默認(rèn)是空格。
  • skiprows跳過(guò)前幾行讀取,默認(rèn)是0,必須是int整型。
  • usecols:要讀取哪些列,0是第一列。例如,usecols = (1,4,5)將提取第2,第5和第6列。默認(rèn)讀取所有列。
  • unpack如果為True,將分列讀取。

問(wèn)題

今天在ipython中讀取文件時(shí),
代碼為:

import numpy as np
x = np.loadtxt('C:\Users\sunshine\Desktop\scjym_3yNp3Gj\源數(shù)據(jù)\000001.csv',delimiter= ',',skiprows=(1),usecols= (1,4,6),unpack= False)```

出現(xiàn)下面的錯(cuò)誤:
```SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape```

編碼錯(cuò)誤,經(jīng)搜索問(wèn)題,發(fā)現(xiàn)采用如下解決方案:

r'C:\Users\expoperialed\Desktop\Python'
'C:\Users\expoperialed\Desktop\Python'
'C:/Users/expoperialed/Desktop/Python'


看到這里我就明白自己錯(cuò)在哪兒了。
***書(shū)寫(xiě)字符串有幾個(gè)需要注意的地方***:
####1. 長(zhǎng)字符串
非常長(zhǎng)的字符串,跨多行時(shí),可以使用***三個(gè)引號(hào)***代替普通引號(hào)。
即:

print('''This is a very long string.
it will continue.
and it's not over yet.
''hello,world''
still here.'''

可以注意到,使用這種方式時(shí),***字符串中可以同時(shí)使用單引號(hào)和雙引號(hào)***
#### 2.原始字符串

即`print(r'c:\nwhere')`

***反斜線有特殊的作用,它會(huì)轉(zhuǎn)義***,可以幫助我們?cè)谧址屑尤雴我?hào)和雙引號(hào)等不能直接加入的內(nèi)容。
***\n,換行符,可以存放于字符串中。***
以上代碼塊中,很顯然我們是想要一個(gè)路徑,而如果不使用原始字符串,我們就會(huì)得到
`c:
where`。
對(duì),為了防止這種情況,我們還可以使用反斜線進(jìn)行轉(zhuǎn)義,但是如果這個(gè)路徑很長(zhǎng),就像本文的路徑:
`C:\\\Users\\\sunshine\\\Desktop\\\scjym_3yNp3Gj\\\源數(shù)據(jù)\\\000001.csv`
使用雙斜線,就會(huì)很麻煩。
這時(shí),我們就可以用原始字符串。

***原始字符串以r開(kāi)頭。***
- 原始字符串結(jié)尾不能是反斜線。
- 如要結(jié)尾用反斜線,`print(r'C:\Programfiles\foo\bar' '\\')`即`C:\Programfiles\foo\bar\ `

在常規(guī)python字符串中,\U字符組合表示擴(kuò)展的Unicode代碼點(diǎn)轉(zhuǎn)義。
因此這里出現(xiàn)了錯(cuò)誤。

### python導(dǎo)入csv文件的三種方法

```python

#原始的方式

lines = [line.split(',') for line in open('iris.csv')]
df = [[float(x) for x in line[:4]] for line in lines[1:]]

#使用numpy包

import numpy as np
lines = np.loadtxt('iris.csv',delimiter=',',dtype='str')
df = lines[1:,:4].astype('float')

#使用pandas包

import pandas as pd
df = pd.read_csv('iris.csv')
df=df.ix[:,:4]

這三種方法中最后一種最簡(jiǎn)單,不過(guò)花費(fèi)時(shí)間比較長(zhǎng)一點(diǎn),第一種最麻煩,不過(guò)用時(shí)最短。這個(gè)可以通過(guò)ipython中的magic函數(shù)%%timeit來(lái)看。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評(píng)論 19 139
  • linux資料總章2.1 1.0寫(xiě)的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無(wú)法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,200評(píng)論 2 33
  • 內(nèi)置函數(shù)Python解釋器內(nèi)置了許多功能和類(lèi)型,總是可用的。他們是按字母順序列在這里。 abs(x)返回一個(gè)數(shù)的絕...
    uangianlap閱讀 1,362評(píng)論 0 0
  • 基礎(chǔ)命令 主要的命令和快捷鍵 Linux系統(tǒng)命令由三部分組成:cmd + [options]+[operation...
    485b1aca799e閱讀 1,212評(píng)論 0 0
  • 小白從零開(kāi)始學(xué)習(xí)文案寫(xiě)作。步履維艱吶。 今天總結(jié)下,上周文案作業(yè)。一把辛酸淚啊。 我的充電寶文案還沒(méi)寫(xiě)出個(gè)滿意的結(jié)...
    周周是個(gè)妞閱讀 1,198評(píng)論 0 3

友情鏈接更多精彩內(nèi)容