On 15 October 2012 22:09, someone <newsbo...@gmail.com> wrote: > > See this: > > ==============================**============================ > In [5]: Dx = numpy.matrix('1 0 0; 0 0.5 -0.5; 0 -0.5 1.5') > > In [6]: Dx > Out[6]: > matrix([[ 1. , 0. , 0. ], > [ 0. , 0.5, -0.5], > [ 0. , -0.5, 1.5]]) > ==============================**============================ >
<snip> > Without having to manually change all the individual places using my > variables (test is actually many variables, not just one but I think you > should understand the problem now). > > > How to initialize my array directly using variables ? > > It could also be that I wanted: > > test11 = 1 > test12 = 1.5 > test13 = 2 > test21 = 0 > test22 = 5 > > Dx = numpy.matrix('test11 test12 test13; test21 test22 -0.5; 0 -0.5 1.5') > > Etc... for many variables... > > Appreciate ANY help, thank you very much! Well, I don't know that much on Numpy (I've only ever used the basic stuff), but Ian Kelly's probably right. If you can't "just use" a list, why don't you convert it? def matrixstring2lists(string, lookup_chain): > stringmatrix = [substr.split() for substr in string.split(";")] return [ > [ > lookup_chain[item] if item.isidentifier() else eval(item) > for item in items > ] > for items in stringmatrix > ] ##### TESTS ###### > import builtins ## {{{ http://code.activestate.com/recipes/305268/ (r2) > class Chainmap(dict): > """Combine multiple mappings for sequential lookup. For example, to emulate Python's normal lookup sequence: > import __builtin__ > pylookup = Chainmap(locals(), globals(), vars(__builtin__)) > """ > def __init__(self, *maps): > self._maps = maps > def __getitem__(self, key): > for mapping in self._maps: > try: > return mapping[key] > except KeyError: > pass > raise KeyError(key) > ## end of http://code.activestate.com/recipes/305268/ }}} > test11 = 1 > test12 = 1.5 > test13 = 2 > test21 = 0 > test22 = 5 print(matrixstring2lists( > 'test11 test12 test13; test21 test22 -0.5; 0 -0.5 1.5', > Chainmap(locals(), globals(), vars(__builtins__)) > )) That said, calling "matrixstring2lists" requires inputting a mapping from the local scope, so I don't see how it could get much simpler to call (minus removing "vars(__builtins__)" unless you *really* want that for some reason.
-- http://mail.python.org/mailman/listinfo/python-list