Java、Python不用numpy实现csv和二维数组之间的相互转换

java

  1. CSV转二维数组
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class csvTOarray {
     
  int[][] result;
  public csvTOarray(String filePath,int rowCount, int colCount) {
     
    result = new int[rowCount][colCount];
    FileReader file = null;
  try {
     
    file = new FileReader(filePath);
  } catch (FileNotFoundException e) {
     
    e.printStackTrace();
  }
  
  BufferedReader br = new BufferedReader(file);
  try {
      
    String[] temp = null;
    int count = 0;
    String line = null;
    while((line = br.readLine()) != null) {
     
      temp = line.split(",");
      for(int i = 0; i < temp.length; ++i) {
     
      // 要用if-else进行一些转换(0-无、 1-车、 2-货架、 3-装载点、 4-路)
      result[count][i] = Integer.parseInt(temp[i]);
      }
    count++;
    }
  } catch (IOException e) {
     
   e.printStackTrace();
  }
 }
 
 public int[][] getMap() {
     
  return result;
 }
}

2.二维数组转CSV参考链接

Python

1. 用numpy

  1. 二维数组转CSV
import numpy  
numpy.savetxt("XXX.csv", my_matrix, delimiter = ',')
  1. CSV转二维数组
import numpy
my_matrix = numpy.loadtxt(open("XXX.csv","rb"),delimiter=",",skiprows=0)

2. 不用numpy

  1. 二维数组转CSV
with open('XXX.csv', 'r') as csvfile:    
    reader = csv.reader(csvfile)    
    data = []    
    for line in reader:        
        data.append((line))print(data)
print(data)
  1. CSV转二维数组
tempMap = [[0, 2, 0, 1, 8], 
           [0, 0, 3, 1, 7], 
           [0, 0, 1, 1, 5]]
file_name = 'XXX.csv'
with open(file_name, 'w', newline = '') as f:    
    pen = csv.writer(f)    
    for v in tempMap:       
        pen.writerow(v)

你可能感兴趣的:(python,java,numpy,csv)