【问题标题】:How do i store values from a text file into a 2D Numpy array?如何将文本文件中的值存储到 2D Numpy 数组中?
【发布时间】:2019-11-03 16:27:41
【问题描述】:

我在一个 txt 文件中有一个数据集,它有 373 行和 3 列。我的老师让我创建 2 个数组。'array1' 存储数据集的所有行,它们的第三列的值为 1,' array2' 在 column2 存储编号为 2 的每一行。数组必须是 numpy 数组。 我试过 'class1 = np.zeros(len(dataset)).reshape(len(dataset)//3,3)' 但我收到错误消息: 'ValueError:无法将大小为 373 的数组重塑为形状 (124,3)' 我尝试了各种不同的变化。但是我找不到一种方法来制作 2D 工作。我只设法使用以下代码将列 number1 存储在两个数组上:

'''
import numpy as np

dataset = np.loadtxt("first_attempt_dataset.txt")

class1 = np.zeros(len(dataset))
class2 = np.zeros(len(dataset))


for i in range(0,len(dataset)): 
  if dataset[i,2] == 1:  
    class1[i] = dataset[i][1]
  elif dataset[i,2] == 2:
    class2[i] = dataset[i][1]


class1 = class1[class1 != 0]  #delete the remained zeros from declaration
class2 = class2[class2 != 0]  

'''

如何存储每一列而不是只存储 1 列?

【问题讨论】:

    标签: python arrays python-3.x numpy


    【解决方案1】:

    我觉得你误解了老师的问题。问题是“......'array1'存储了数据集的所有行,它们的第三列的值为1,......”,所以我会这样做:

    import numpy as np
    
    a = np.array([[1,2,3], [3,2,1], [2,3,1], [2,1,3], [3,1,2]])
    b = a[a[:,2]==1]
    print(b)
    

    结果是:

    [[3 2 1]
     [2 3 1]]
    

    与后半题类似,需要将列号改为1

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 2021-07-04
      • 1970-01-01
      • 2021-03-01
      • 2012-06-21
      • 2023-03-15
      相关资源
      最近更新 更多