一、基本创建方式。
1. 基于 list 的 ndarray 创建
2. 基于元组 tuple 的 ndarray 创建
3. 基于迭代器的 ndarray 创建
二、Numpy原生函数创建。
1. zeros 创建一个用指定形状用0填充的数组。默认的dtype是float64。其中shape可以是个整数或者一个序列
2. ones 创建一个用指定形状用1填充的数组。默认的dtype是float64。其中shape可以是个整数或者一个序列
3. eye 创建一个用指定形状用0填充的数组,且对角线全为1的矩阵。
4. diag 创建对角线数组。
5. arange 在给定间隔内返回均匀间隔的值。值在半开区间 [开始,停止)内生成
6. linspace 创建等差数列
7. logspace 创建等比数列
三、读取文件创建数组
四、ndarray的重要属性
list
的 ndarray 创建。import numpy as np
# 创建一维数组
arr1 = np.array([1,2,3,4])
# 创建二维数组
arr1 = np.array([[1,2,3,4], [1,2,3,4]])
tuple
的 ndarray 转化。import numpy as np
arr2 = np.array((1,2,3,4))
迭代器
的 ndarray 创建。import numpy as np
np.array(range(3,8))
np.array(range(3,8), dtype='float')
zeros
创建一个用指定形状用0填充的数组。默认的dtype是float64。其中shape可以是个整数或者一个序列。import numpy as np
arr4 = np.zeros((2,3))
arr4
# out
# array([[0., 0., 0.],
# [0., 0., 0.]])
ones
创建一个用指定形状用1填充的数组。默认的dtype是float64。其中shape可以是个整数或者一个序列import numpy as np
arr4 = np.ones((2,3))
arr4, type(arr4)
# out
# (array([[1., 1., 1.],
# [1., 1., 1.]]),
# numpy.ndarray)
eye
对角线为 1, 其余全为 0 的矩阵。import numpy as np
arr4 = np.eye(4)
diag
提取或构建对角线数组。import numpy as np
arr4 = np.diag([2,3,4,5])
arr4
# out
# (array([[2, 0, 0, 0],
# [0, 3, 0, 0],
# [0, 0, 4, 0],
# [0, 0, 0, 5]]),
arange
在给定间隔内返回均匀间隔的值。值在半开区间 [开始,停止)内生成(换句话说,包括开始但不包括停止的区间),返回的是 ndarray 。关于 np.arange
详细参数详解,请参考import numpy as np
arr5 = np.arange(0, 10, 1)
arr5, type(arr5)
# out
# (array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), numpy.ndarray)
# 指定数据类型
arr6 = np.arange(10, dtype=np.int)
arr6, type(arr6)
# out
# (array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), numpy.ndarray)
linspace
创建等差数列。import numpy as np
arr7 = np.linspace(0, 10, 5)
# out
# (array([ 0. , 2.5, 5. , 7.5, 10. ]), numpy.ndarray)
logspace
创建等比数列。start 和 stop 表示的是多少次方。import numpy as np
arr8 = np.logspace(1, 10, 10)
arr8, type(arr8)
# out
# (array([1.e+01, 1.e+02, 1.e+03, 1.e+04, 1.e+05, 1.e+06, 1.e+07, 1.e+08, 1.e+09, 1.e+10]),numpy.ndarray)
arr8 = np.logspace(1, 9, 9, base=2) # 生成以2为底的等比数列
默认采用空白作为分隔符,将文件中的内容读取进来,并生成矩阵,要求每行的内容数目必须一致,也就是说不能有缺失值。由于numpy矩阵中都是同一类型的元素,所以函数会自动将文件中的内容转换为同一类型。
import numpy as np
arr9 = np.loadtxt(r'./numpy_read.txt', delimiter='\t')
arr9, type(arr9), arr9.shape
# 跳过前几行
np.loadtxt(r'./numpy_read.txt', skiprows=3)
# 选择指定的列
np.loadtxt(r'./numpy_read.txt', skiprows=3, usecols=(1,2,3))
# 按列返回矩阵按列返回矩阵
arr10 = np.loadtxt(r'./numpy_read.txt', unpack=True)
arr10, type(arr10), arr10.shape
除此之外还有一个函数也可以用来读取文件,那就是genfromtxt()函数,它用法和loadtxt类似,但是会有更丰富的功能,大家可以把他理解为loadtxt()的升级版。
import numpy as np
arr = np.array([[1,2,3], [7,8,9]], dtype=float)
arr
# dtype属性:返回ndarray数组的数据类型,数据类型的种类
arr.dtype
# ndim属性:返回数组维度的数量
arr.ndim
# shape属性:返回数组对象的尺度,对于矩阵,即n行m列,shape是一个元组(tuple)
arr.shape
# size属性:返回用来保存元素的数量,相当于shape中n×m的值
arr.size
# T属性:返回数组转置
arr.T