1、np.array和np.asarray
np.asarray 的定义:
def asarray(a, dtype=None, order=None):
return array(a, dtype, copy=False, order=order)
而 np.array 的定义:
def array(a, dtype=None, order=None):
return array(a, dtype, copy=True, order=order)
简而言之:
主要区别在于 np.array (默认情况下)将会copy该对象,而 np.asarray 除非必要,否则不会copy该对象。
2、np.newaxis
np.newaxis的功能:插入新维度。
栗子1:
a=np.array([1,2,3,4,5])
print(a.shape)
print (a)
输出:
(5,)
[1 2 3 4 5]
栗子2:
a=np.array([1,2,3,4,5])
aa=a[:,np.newaxis]
print(aa.shape)
print (aa)
输出:(5, 1)
[[1]
[2]
[3]
[4]
[5]]
栗子3:
a=np.array([1,2,3,4,5])
aa=a[np.newaxis,:]
print(aa.shape)
print (aa)
输出:
(1, 5)
[[1 2 3 4 5]]
看明白了吧,原来np.newaxis的作用是增加一个维度。
对于[: , np.newaxis] 和 [np.newaxis,:],是在np.newaxis这里增加1维。
这样改变维度的作用往往是将一维的数据转变成一个矩阵,与代码后面的权重矩阵进行相乘, 否则单单的数据是不能呢这样相乘的哦。
3、hasattr() 函数理解
hasattr(object, name)
判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。
需要注意的是name要用括号括起来。
>>> class test():
... name="xiaohua"
... def run(self):
... return "HelloWord"
...
>>> t=test()
>>> hasattr(t, "name") #判断对象有name属性
True
>>> hasattr(t, "run") #判断对象有run