NumPy本身并没有提供多么高级的数据分析功能,理解Numpy数组以及面向数组的计算将有助于更加高效地使用诸如pandas之类的工具。 NumPy的ndarray:一种多为数组对象 NumPy最重要的一个特点就是N维数组对象,是一个快速而灵活的大数据集容器。 ndarray是一个通用的同构数据多维容器,其中所有的元素必须是相同的类型。每个数组有一个shape(一个表示各维度大小的元组)和一个dtype(一个说明数组数据类型的对象)
<code> import numpy as np/<code>
<code> # 1.创建ndarray
# 创建数组最简单的办法是使用array函数。它能接受一切序列型的对象,包括其他数组,然后产生一个新的含有传入数据的NumPy数组。
# 例如:
data1 = [6, 7.5, 8, 0, 1]
arr1 = np.array(data1)
arr1.ndim/<code>
<code>1/<code>
<code> # 2.嵌套序列(比如由一组登场列表组成的列表)将会被转换为一个多维数组:
data2 = [[1,2,3,4],[5,6,7,8]]
arr2 = np.array(data2)
arr2/<code>
<code> array([[1, 2, 3, 4],
[5, 6, 7, 8]])/<code>
<code> arr2.ndim
# ndim数组的长度/<code>
<code> 2/<code>
<code> arr2.shape/<code>
<code> (2, 4)/<code>
<code> arr1.dtype/<code>
<code> dtype('float64')/<code>
<code> # 3.全0和全1以及空(未初始化的值,垃圾值)数组
np.zeros(10)
np.zeros((10,10))
# zeros_like可以根据另一个数组的大小和形状创建一个全0数组
np.zeros_like(arr2)/<code>
<code> array([[0, 0, 0, 0],
[0, 0, 0, 0]])/<code>
<code> np.ones(10)
# np.ones((10,10))
np.ones_like(arr2)
# ones_like可以根据另一个数组的大小和形状创建一个全1数组/<code>
<code> array([[1, 1, 1, 1],
[1, 1, 1, 1]])/<code>
<code> np.empty((3, 3, 3))
# 类似ones_like但是只分配内存空间不填充值。
np.empty_like(arr2)/<code>
<code> array([[5439564, 5374017, 4390992, 4522079],
[4456526, 5177424, 5111881, 84]])/<code>
<code> arange类似range但是返回一个数组而不是一个列表
np.arange(15)/<code>
<code> array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])/<code>
<code> # 创建一个正方形的矩阵对角线为1其余为0
np.eye(10)
np.identity(10)/<code>
<code> array([[1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 1., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 1.]])/<code>
閱讀更多 不愛吃糖的大師 的文章