Python 读书笔记(容易误解的知识点)-Part 2
Python 读书笔记(容易误解的知识点)-Part 2
上一篇 Python 读书笔记:
Python 读书笔记(容易误解的知识点)-Part 1
numpy中的ndarray与array的区别?
np.array 只是一个便捷的函数,用来创建一个ndarray,它本身不是一个类。
看看如下代码的输出:
import numpy as np
a = np.array([1,2,3,4,5])
print(a)
print(type(a))
输出结果:
[1 2 3 4 5]
<class 'numpy.ndarray'>
na.array 是一个函数,用来创建一个ndarray;numpy.ndarry 则是一个类。
numpy.ndarry
numpy数组ndarray和matrix矩阵之间有什么区别?
Numpy矩阵是严格的二维,而numpy数组(ndarray)是N维。 Matrix对象是ndarray的子类,因此它们继承所有ndarray的属性和方法。
np.asmatrix和np.asarray允许将一个类型转换为另一个类型(如只要数组是2维的)。
从上述官方文档来看,已不建议使用 matrix 类,建议使用正常的arrays,在将来 matrix 类可能会被移除。
看看下面的代码演示:
import numpy as np
a=np.mat('1 2 6; 3 4 7; 5 6 8')
print(a)
print(type(a))
np.matrix
b=np.array([[1,2,6],[3,4,7],[5,6,8]])
print(b)
print(type(b))
c=np.asmatrix(b)
print(type(c))
d=np.asarray(a)
print(type(d))
输出结果如下:
Python 中的range(),arange()函数区别?
分别看一下2个函数的用法。
(1)range()函数
函数说明: range(start, stop[, step]) -> range object,根据start与stop指定的范围以及step设定的步长,生成一个序列。
参数含义:
- start: 计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);
- end: 计数到end结束,但不包括end。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;
- step:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1);
函数返回的是一个range object。
示例代码:
>>> range(0,5)
range(0, 5)
>>> c=[i for i in range(0,5)]
>>> c
[0, 1, 2, 3, 4]
>>> c=[i for i in range(0,5,2)]
>>> c
[0, 2, 4]
>>>
(2)arange()函数
函数说明:arange([start] stop[, step], dtype=None),根据start与stop指定的范围以及step设定的步长,生成一个 ndarray。
dtype : The type of the output array. If `dtype` is not given, infer the data type from the other input arguments.
>>> import numpy as np
>>> np.arange(5)
array([0, 1, 2, 3, 4])
>>> np.arange(5.0)
array([0., 1., 2., 3., 4.])
>>> np.arange(5,10)
array([5, 6, 7, 8, 9])
>>> np.arange(5,10,2)
array([5, 7, 9])