本文主要是介绍gurobi与python应用之数组生成,转换,修改,存储及读取,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
gurobi与python应用篇1
- 1.数组生成,转换,修改,存储及读取
1.数组生成,转换,修改,存储及读取
matlab输入矩阵很简单,直接用分号表示下一行即可。
而python不同,一维是list,二维是list中包含list
用普通方法创建的数组分隔符有逗号,而numpy创建的数组分隔符默认为空格(见代码块2,numpy生成的更方便!推荐这种)。
// 一维数组:list
a = [10,20,30,25,12,16,23,21,18,16];
// 二维数组:list中放list
a = [[1, 2, 3], [4, 5, 6]];
m = [[0]*5 for i in range(3)]
// numpy创建数组
from numpy import *
m1 = array([arange(1,4),arange(4,7),arange(7,10),arange(10,13),arange(13,16),arange(16,19)]) # 创建6行3列的二维数组
print(m1)
print("-"*50) # 分割线
当然,一维数组和多维数组也可以相互转化。
(1).reshape:将一维数组变成多维数组
用法:一维数组名.reshape(x,y,z)将一维数组改成三维数组
(2).ravel或flatten:将多维数组变为一维数组
用法:数组名.ravel()或 数组名.flatten()
(3).shape:将 高维数组 转换成 低维数组
用法:数组名.shape(x行,列)
(4).transpose:将数组进行转置
用法:数组名.transpose()
数组也可以存储:
savetxt
用法:savetxt(“文件名.txt”,数组名,fmt=数组格式,delimiter=’;’)
补充:数组格式可以为 整数型(%d)浮点型(%f)
// 将数组存储到txt中
from numpy import *
m1 = array([arange(1,4),arange(4,7),arange(7,10),arange(10,13),arange(13,16),arange(16,19)]) # 创建6行3列的二维数组
print(m1)
print("-"*50) # 分割线
savetxt("文件名.txt",m1,fmt='%d',delimiter=';')
数组的读取:
loadtxt
用法:新数组 = loadtxt(“文件名.txt”,dtype=‘数组格式’,delimiter=’,’)
补充:数组格式可以为 整数型(int)浮点型(float)
from numpy import *print("-"*50) # 分割线
a = loadtxt("文件名.txt",dtype=int,delimiter=';')
print(a) # 将数组转置
print("-"*50) # 分割线
关于数组的处理: 见这篇.
这篇关于gurobi与python应用之数组生成,转换,修改,存储及读取的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!