gurobi与python应用之数组生成,转换,修改,存储及读取

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)])  # 创建63列的二维数组
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)])  # 创建63列的二维数组
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)  # 分割线

关于数组的处理: 见这篇.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值