Python 读书笔记(容易误解的知识点)-Part 2

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 则是一个类。

Python 读书笔记(容易误解的知识点)-Part 2

numpy.ndarry

Python 读书笔记(容易误解的知识点)-Part 2

numpy数组ndarray和matrix矩阵之间有什么区别?

Numpy矩阵是严格的二维,而numpy数组(ndarray)是N维。 Matrix对象是ndarray的子类,因此它们继承所有ndarray的属性和方法。

np.asmatrix和np.asarray允许将一个类型转换为另一个类型(如只要数组是2维的)。

Python 读书笔记(容易误解的知识点)-Part 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 读书笔记(容易误解的知识点)-Part 2

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])

相关推荐