Python 如何更优雅地构造2次方数的numpy数组?

Python 如何更优雅地构造2次方数的numpy数组?,python,numpy,jupyter-notebook,numpy-ndarray,Python,Numpy,Jupyter Notebook,Numpy Ndarray,我想弄清楚如何创建这个数组,而不用将每个值都放在每只手上 有没有一种方法可以让我使用这样的信息:除了第一个值之外,每个值都是它的前一个值的两倍 我的代码如下: 将numpy作为np导入 矩阵=np。数组[1,2,4,8,16,32,64128256]。重塑3,3 打印矩阵 您可以使用并利用以下事实,即它们是2的幂: 您可以使用并利用以下事实,即它们是2的幂: 你也可以这样做: var myRandomArray = [1]; var i = 1; var num = 1; while (i &l

我想弄清楚如何创建这个数组,而不用将每个值都放在每只手上

有没有一种方法可以让我使用这样的信息:除了第一个值之外,每个值都是它的前一个值的两倍

我的代码如下:

将numpy作为np导入 矩阵=np。数组[1,2,4,8,16,32,64128256]。重塑3,3 打印矩阵 您可以使用并利用以下事实,即它们是2的幂:

您可以使用并利用以下事实,即它们是2的幂:


你也可以这样做:

var myRandomArray = [1];
var i = 1;
var num = 1;
while (i < 9) {
  myRandomArray.push(num = num * 2);
  i = i + 1;
}

这是用JavaScript编写的。对于Python,只需切换您需要的内容,主要思想仍然存在。我相信Python,它是append而不是push。

您也可以这样做:

var myRandomArray = [1];
var i = 1;
var num = 1;
while (i < 9) {
  myRandomArray.push(num = num * 2);
  i = i + 1;
}

这是用JavaScript编写的。对于Python,只需切换您需要的内容,主要思想仍然存在。我相信Python,它是append而不是push。

这里有一个陪审团操纵的解决方案:

In [10]: total_num = 9 

In [11]: np.array([2**n for n in range(0, total_num)]).reshape(3, -1) 
Out[11]: 
array([[  1,   2,   4],
       [  8,  16,  32],
       [ 64, 128, 256]])

这是一个操纵陪审团的解决方案:

In [10]: total_num = 9 

In [11]: np.array([2**n for n in range(0, total_num)]).reshape(3, -1) 
Out[11]: 
array([[  1,   2,   4],
       [  8,  16,  32],
       [ 64, 128, 256]])
您可以使用np.vander:

您可以使用np.vander:


OP正在寻找一个python解决方案,问题的标签给了他一个javascript解决方案,主要思想是解决问题,因为python程序员会知道isOP寻找python解决方案的语法,问题的标签给了他一个javascript解决方案,主要的想法是解决这个问题,因为python程序员会知道语法是什么。谢谢你的快速回答:欢迎@R.K.,别忘了你可以投票/接受答案,请看,谢谢!谢谢你的快速回答:不客气@R.K.,别忘了你可以投票/接受答案,看,谢谢!可能不会更优雅,但位移位在本例中有效:np.left_shift1,np.arange9.reforme3,3可能不会更优雅,但位移位在本例中有效:np.left_shift1,np.arange9.reforme3,3