为什么我在运行此命令时获取单个元素而不是10个元素

时间:2018-01-30 17:37:13

标签: python python-3.x numpy data-science

尝试了很多,但我无法将整个元素转换为数组,我想在我的1D数组中使用10个元素

我使用此代码

async function main() {
  var quote = await getQuote().catch(err => {
    console.error(err)      

    return new Error('Error getting quote')
  })

  if (quote instanceOf Error) return quote // get out of here or do whatever

  console.log(quote)
}

查看输出>>>>>>> Refer To this pic

我总是将1个元素作为输出而不是10个元素

请仅修改此代码

3 个答案:

答案 0 :(得分:0)

我假设你知道np.reshape,你有什么理由需要使用循环吗?

假设这是真的,你可以在循环之外实例化list2,然后在循环中追加值。现在你每次进行循环时都会创建一个新的np数组,因此在离开循环时你只需要一个带有最终值的新np数组。

list2 = np.array(np.zeros(50))
j = 0 
for i in list1.flat:
    list2[j] =  i
    j+=1

答案 1 :(得分:0)

我必须同意@Piinthesky你的问题没有很好地表达出来。我怀疑(但我不确定)你想获得2D数组list1的扁平(1D)版本。有关ravelreshapeflatten之间差异的详细信息,请参阅https://stackoverflow.com/a/28930580/8033585

因此,你可以得到一个扁平数组:

方法1:

list2 = list1.reshape(-1) # returns a view! modifying list2 modifies list1

方法2:

list2 = list1.ravel() # returns a view most of the time (unless list1 is not contiguous)!

方法3:

list2 = list1.flatten() # returns a 1D **copy** of list1

答案 2 :(得分:0)

由于你的问题不明确,我认为你已经给出了重塑(10,5),它将数据总是分为5列 如果我明白的话。 试试这个: -

import numpy as np
list1=np.random.randint(low=50,high=100,size=50).reshape(5,10)
for i in list1:
  print (i)