<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.16.1">
</HEAD>
<BODY>
But:<BR>
<BR>
<BR>
&gt;&gt;&gt; R[ax,:] = 100<BR>
&gt;&gt;&gt; R<BR>
array([[&nbsp; 0,&nbsp;&nbsp; 1,&nbsp;&nbsp; 2],<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [100, 100, 100],<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [100, 100, 100]])<BR>
&gt;&gt;&gt; R[:,ax] = 200<BR>
&gt;&gt;&gt; R<BR>
array([[&nbsp; 0, 200, 200],<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [100, 200, 200],<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [100, 200, 200]])<BR>
<BR>
Do I get an array view only if the array is contiguous?<BR>
<BR>
&nbsp; Nadav.<BR>
<BR>
On Wed, 2008-01-30 at 16:08 +0100, Francesc Altet wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">A Wednesday 30 January 2008, Nadav Horesh escrigu&#233;:</FONT>
<FONT COLOR="#000000">&gt; In the following piece of code:</FONT>
<FONT COLOR="#000000">&gt; &gt;&gt;&gt; import numpy as N</FONT>
<FONT COLOR="#000000">&gt; &gt;&gt;&gt; R = N.arange(9).reshape(3,3)</FONT>
<FONT COLOR="#000000">&gt; &gt;&gt;&gt; ax = [1,2]</FONT>
<FONT COLOR="#000000">&gt; &gt;&gt;&gt; R</FONT>
<FONT COLOR="#000000">&gt;</FONT>
<FONT COLOR="#000000">&gt; array([[0, 1, 2],</FONT>
<FONT COLOR="#000000">&gt;        [3, 4, 5],</FONT>
<FONT COLOR="#000000">&gt;        [6, 7, 8]])</FONT>
<FONT COLOR="#000000">&gt;</FONT>
<FONT COLOR="#000000">&gt; &gt;&gt;&gt; R[ax,:][:,ax] = 100</FONT>
<FONT COLOR="#000000">&gt; &gt;&gt;&gt; R</FONT>
<FONT COLOR="#000000">&gt;</FONT>
<FONT COLOR="#000000">&gt; array([[0, 1, 2],</FONT>
<FONT COLOR="#000000">&gt;        [3, 4, 5],</FONT>
<FONT COLOR="#000000">&gt;        [6, 7, 8]])</FONT>
<FONT COLOR="#000000">&gt;</FONT>
<FONT COLOR="#000000">&gt; Why R is not updated?</FONT>

<FONT COLOR="#000000">Because R[ax] is not a view of R, but another copy of the original </FONT>
<FONT COLOR="#000000">object (fancy indexing does return references to different objects).  </FONT>
<FONT COLOR="#000000">In order to get views, you must specify only a slice of the original </FONT>
<FONT COLOR="#000000">array.  For example:</FONT>

<FONT COLOR="#000000">In [50]: S = R[::2]</FONT>
<FONT COLOR="#000000">In [51]: S[:] = 2</FONT>
<FONT COLOR="#000000">In [52]: R</FONT>
<FONT COLOR="#000000">Out[52]:</FONT>
<FONT COLOR="#000000">array([[2, 2, 2],</FONT>
<FONT COLOR="#000000">       [3, 4, 5],</FONT>
<FONT COLOR="#000000">       [2, 2, 2]])</FONT>

<FONT COLOR="#000000">So, what you need is something like:</FONT>

<FONT COLOR="#000000">In [68]: R = N.arange(9).reshape(3,3)</FONT>
<FONT COLOR="#000000">In [69]: S = R[1:3,:][:,1:3]</FONT>
<FONT COLOR="#000000">In [70]: S[:] = 2</FONT>
<FONT COLOR="#000000">In [71]: R</FONT>
<FONT COLOR="#000000">Out[71]:</FONT>
<FONT COLOR="#000000">array([[0, 1, 2],</FONT>
<FONT COLOR="#000000">       [3, 2, 2],</FONT>
<FONT COLOR="#000000">       [6, 2, 2]])</FONT>

<FONT COLOR="#000000">Cheers,</FONT>

</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>