PYTHON將列表存儲為csv文件以及從csv中提取數據


一、問題:從這個 https://blog.csdn.net/qq_42052864/article/details/81591511 中獲得的靈感,但是我是要實現存儲為2行n列的?怎么辦呢?

import numpy as np
wab1 = [1,2,3,4,5,6,7]
wab2 = [7,6,5,4,3,2,1]

np.savetxt('new.csv',wab2, delimiter = ',') 
#結果:new.csv
7.00E+00
6.00E+00
5.00E+00
4.00E+00
3.00E+00
2.00E+00
1.00E+00

解決方法1:那我在存儲一次不就行了?

import numpy as np
wab1 = [1,2,3,4,5,6,7]
wab2 = [7,6,5,4,3,2,1]

np.savetxt('new.csv',wab1, delimiter = ',') 
#結果:new.csv
1.00E+00
2.00E+00
3.00E+00
4.00E+00
5.00E+00
6.00E+00
7.00E+00   #被覆蓋了,哈哈,以失敗告終

 

解決方法2:np.array(my_matrix).reshape(7,2)

到后面才發現這個np.array是將將每個元素按順序拿出來,然后重新行排列為想要的m*n

那么我們將兩個列表交叉插入后就可以存儲了,試試吧!

import numpy as np
wab1 = [1,2,3,4,5,6,7]
wab2 = [7,6,5,4,3,2,1]

list2 = []
for (i,j) in zip(wab1,wab2):
    list2.append(i)
    list2.append(j)
print(list2)
a = np.array(list2).reshape(7,2)

print(a)
np.savetxt('new.csv',a, delimiter = ',')
#output
[1, 7, 2, 6, 3, 5, 4, 4, 5, 3, 6, 2, 7, 1]
[[1 7]
 [2 6]
 [3 5]
 [4 4]
 [5 3]
 [6 2]
 [7 1]]

#new.csv
1.00E+00    7.00E+00
2.00E+00    6.00E+00
3.00E+00    5.00E+00
4.00E+00    4.00E+00
5.00E+00    3.00E+00
6.00E+00    2.00E+00
7.00E+00    1.00E+00

這樣就可以了啊!嘻嘻!

 

中途遇到的小問題:

import numpy as np
wab1 = [1,2,3,4,5,6,7]
wab2 = [7,6,5,4,3,2,1]
    
#轉換成列
Wab1 = np.array(wab1).reshape(-1,1)
Wab2 = np.array(wab2).reshape(-1,1)


my_matrix = [Wab1,Wab2] #這是一個矩陣7*1*2,不是 7*2 的

 

二。提取數據:

csv文件是這么操作的:

b = np.loadtxt(open("new.csv","rb"),delimiter=",",skiprows=0)
print(b)

#結果:
[[1. 7.]
 [2. 6.]
 [3. 5.]
 [4. 4.]
 [5. 3.]
 [6. 2.]
 [7. 1.]]

txt文件如下:

np.savetxt('new.txt',a, delimiter = ',')
c = np.loadtxt('new.txt',delimiter=",")
print(c)

#結果:
[[1. 7.]
 [2. 6.]
 [3. 5.]
 [4. 4.]
 [5. 3.]
 [6. 2.]
 [7. 1.]]

#new.txt
1.000000000000000000e+00,7.000000000000000000e+00
2.000000000000000000e+00,6.000000000000000000e+00
3.000000000000000000e+00,5.000000000000000000e+00
4.000000000000000000e+00,4.000000000000000000e+00
5.000000000000000000e+00,3.000000000000000000e+00
6.000000000000000000e+00,2.000000000000000000e+00
7.000000000000000000e+00,1.000000000000000000e+00

 

三、如果遇到這個(請把csv文件關閉):

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\矩陣導入csv導入數據-實驗\import-data-exp.py", line 13, in <module>
    np.savetxt('new.csv',a, delimiter = ',')
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\site-packages\numpy\lib\npyio.py", line 1359, in savetxt
    open(fname, 'wt').close()
PermissionError: [Errno 13] Permission denied: 'new.csv'

四、參考:

https://blog.csdn.net/vernice/article/details/50683637

https://blog.csdn.net/weixin_43593330/article/details/89882187?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM