How to access elements in numpy.array without converting the array?

11 Ansichten (letzte 30 Tage)
Hello all,
I'm using an outofprocess python enviornment and would like to access individual or a set of elements in a numpy array without converting it. For example.
NP = py.importlib.import_module('numpy');
x = NP.array([1 3 5 7 9 11]);
now I would like to change x(2) to 0, this is what I do now and is clearly not efficient for very large arrays in a for loop for example.
tmp = double(x);
tmp(2) = 0;
x = NP.array(tmp);
my ultimate goal is to be able to take change a set of elements eg. 3:4, or 2:2:6
Thank you for your help

Akzeptierte Antwort

Al Danial
Al Danial am 3 Nov. 2023
Use NumPy's put() function:
>> NP = py.importlib.import_module('numpy');
>> x = NP.array([1 3 5 7 9 11]);
>> ind = int64([0 2]); % indices to 1st and 3rd elements
>> newvals = [-11 -55]; % new values for 1st and 3rd elements
>> NP.put(x, ind, newvals);
>> x
x =
Python ndarray:
-11 3 -55 7 9 11
Use details function to view the properties of the Python object.
Use double function to convert to a MATLAB array.

Weitere Antworten (0)

Kategorien

Mehr zu Call Python from MATLAB finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by