规范化python中的numpy数组列,从其他csv文件读取该数组

时间:2016-11-10 07:03:51

标签: python numpy

每当我尝试对从csv文件获取的数组执行规范化时。我的代码无法正常工作,因为我没有提供自定义文件。

我收到一条错误消息:

 x = np.myarray 

属性错误:'模块'对象没有属性' myarray'

由于我是python的新手,如果我们从csv文件中读取矩阵,有人可以帮助我如何获得规范化矩阵吗?

 import numpy as np
 import csv

 with open('csvk.csv', 'rb') as f: 
    reader = csv.reader(f)
    data_as_list = list(reader) 
    print data_as_list

    myarray = np.asarray(data_as_list)
    print myarray
    x = np.myarray
    x_normed = x / x.max(axis=0)
    print x_normed

2 个答案:

答案 0 :(得分:0)

你想用np.myarray做什么?这是一个属性调用,Python正确地通知您模块numpy没有属性myarray。如果您只想复制myarray,只需要x=myarray,尽管您可以使用x_normed=myarray/myarray.max(axis=0)

以更加pythonic的方式执行此操作

答案 1 :(得分:0)

一些提示:

  1. 一般情况下:尝试将代码进一步归结为会引发错误的部分。
  2. 由于您要导入自定义文件,因此此处的社区无法运行您的代码。在这种情况下,可以很容易地看到错误,但在更困难的情况下,您需要发布可由其他人执行的代码。如果您的代码可以运行,您将获得更详细和有用的答案。
  3. 除了Daniel Forsman的回答:" np.myarray"将无法工作并引发错误,因为numpy没有属性" myarray"。如果调用python将检查,如果拥有该属性。由于模块对象numpy不拥有myarray属性,因此会引发你得到的AttributeError。
  4. 干杯, 丹尼尔