Python 在pycharm中导入numpy函数的问题

Python 在pycharm中导入numpy函数的问题,python,numpy,Python,Numpy,嘿,看一下pycharm中的代码` import numpy as np x = np.array( [ [1,3],[2,4] ] ) y = np.array([ [2,2],[3,5] ] ) print x*y print x.dot(y) 所以dot()和array()都是numpy函数。 为什么我不能写呢 x = array( [ [1,3],[2,4] ] ) y = array([ [2,2],[3,5] ] ) 并且去掉“np”。。 此外,当使用dot()函

嘿,看一下pycharm中的代码`

import numpy as np
x = np.array( [ [1,3],[2,4] ] )
y = np.array([  [2,2],[3,5] ] )
print x*y
print x.dot(y)
所以
dot()
array()
都是numpy函数。 为什么我不能写呢

  x = array( [ [1,3],[2,4] ] )  
  y = array([  [2,2],[3,5] ] )
并且去掉“np”。。
此外,当使用dot()函数时,为什么pycharm不接受
x.(np.dot(y))

首先,pycharm与此无关

您提出的第一个问题是Python的工作方式。您有两个选择:

  • import numpy
    :例如,该函数必须被称为
    numpy.array()

  • 来自numpy导入数组
    :该函数可以称为
    array()
对于第一个选项,您不会遇到麻烦,因为
numpy
和其他每个库都是内部一致的,这意味着函数名是唯一的

第二种选择可能会有问题。例如,假设模块
模块a
模块b
都定义了
数组
,您正在执行以下操作:

from module_a import array
from module_b import array
在这种情况下,
array
是什么<代码>模块a.阵列或
模块b.阵列


就第二个问题而言,
x.(np.dot(y))


这完全是错误的语法。矩阵(或向量)与的相乘是这样完成的:
numpy.dot(x,y)

来自numpy导入数组的
。通过从numpy import*
执行
操作,您可以从
numpy
导入所有内容,但请记住,这会带来一些名称空间问题(
numpy
可能会在您自己的代码中定义一个与变量同名的全局变量)。您可以从numpy import array执行
,然后将其用作
array
,但正如@DeepSpace所说的,如果其他任何东西使用这个确切的名称,您将遇到麻烦。您甚至可以在导入时重命名函数,如下所示:
从numpy import array作为bad_程序员,然后使用它。