簡體   English   中英

我需要一種方法來擺脫 numpy 數組中的大括號

[英]I need a method to get rid of curly brackets in my numpy array

我有一個包含雙精度值(復數)的 61×61 矩陣(numpy 數組)。 我想將我的矩陣保存為 CSV 文件,然后在 Matlab 中使用它。 但是所有元素都有大括號“(,)”。 例如,一個元素是這樣的:

 (3.2-0.4j) 

我希望我的所有元素都沒有大括號; 我是說:

3.2-0.4j
In [213]: arr = np.arange(3.)+np.arange(4)[:,None]*1j                                   
In [214]: arr                                                                           
Out[214]: 
array([[0.+0.j, 1.+0.j, 2.+0.j],
       [0.+1.j, 1.+1.j, 2.+1.j],
       [0.+2.j, 1.+2.j, 2.+2.j],
       [0.+3.j, 1.+3.j, 2.+3.j]])

你是如何嘗試的(可能):

In [220]: np.savetxt('test.txt',arr, delimiter=',', fmt='%3d')                          
In [221]: cat test.txt                                                                  
 (  0+  0j), (  1+  0j), (  2+  0j)
 (  0+  1j), (  1+  1j), (  2+  1j)
 (  0+  2j), (  1+  2j), (  2+  2j)
 (  0+  3j), (  1+  3j), (  2+  3j)

使用文檔中建議的復雜格式(精確副本):

In [223]: np.savetxt('test.txt',arr, fmt=' %.4e %+.4ej %.4e %+.4ej %.4e %+.4ej')   
                                                                
In [224]: cat test.txt                                                                  
 0.0000e+00 +0.0000e+00j 1.0000e+00 +0.0000e+00j 2.0000e+00 +0.0000e+00j
 0.0000e+00 +1.0000e+00j 1.0000e+00 +1.0000e+00j 2.0000e+00 +1.0000e+00j
 0.0000e+00 +2.0000e+00j 1.0000e+00 +2.0000e+00j 2.0000e+00 +2.0000e+00j
 0.0000e+00 +3.0000e+00j 1.0000e+00 +3.0000e+00j 2.0000e+00 +3.0000e+00j

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM