1,创建空的array
x = np.array([]) #从list创建
2,往array中增加元素
x = np.array([1, 2, 3, 4, 5])
Y = np.array([[1,2,3],[4,5,6]])
往x中增加1个或2个元素:
x = np.append(x, 6)
x = np.append(x, [7, 8])
往y中增加1行:
y = np.append(Y, [[7,8,9]], axis=0)
往y中增加增加1列:
y = np.append(Y,[[9],[10]], axis=1)
3,在array某个位置添加元素
x = np.array([1, 2, 5, 6, 7])
Y = np.array([[1,2,3],[7,8,9]])
在x的位置2(即2和5之间)添加两个整数:
x = np.insert(x,2,[3,4])
在Y的位置1(即第一行和第二行之间)处添加一行:
Y = np.insert(Y,1,[4,5,6],axis=0)
在Y的位置1处添加全为5的列:
Y = np.insert(Y,1,5, axis=1)
4,array和其它数据类型的转换
array转list:
X = np.arange(20)
Y = np.ndarray.tolist(X)
5,array的基本运算
X = np.array([1,2,3,4]).reshape(2,2)
Y = np.array([5.5,6.5,7.5,8.5]).reshape(2,2)
加减乘数:
np.add(X,Y)
np.subtract(X,Y)
np.multiply(X,Y)
np.divide(X,Y)
数乘、开方和乘方相当于对每个元素分别操作。
按行或者列(行为axis=0,列为axis=1,不设置axis参数表示对所有的数据进行操作)求和,最大值,最小值,标准差,平均值:
X.sum(axis=0)
X.max(axis=0)
X.min(axis=0)
X.std(axis=0)
X.mean(axis=0)
6,查看array的属性
查看类型:type(x)
查看维度:x.shape
查看数据类型:x.dtype
7,array形状改变
X = np.arange(20)
对形状进行改变:.reshape()
X.reshape(4, 5)
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
在交互模式运行有返回值,原数组不变。
.resize()与.reshape()功能相同,.resize()在交互模式运行无返回值,直接对原数组进行修改
转置:.T()
高维空间维度的某两个维度变换:.swapaxes(1, 2)
python的维度从0开始编号,如三维数组为0,1,2,.swapaxes(1, 2)是对第2个维度和第3个维度进行变换。原数组不变。
将数组变成1维:.flatten()
8,删除array中的元素
x = np.array(range(1, 4, 1))
print(x)
x = np.delete(x, [0, 1])
print(x)
# 输出为
[1 2 3]
[3]
9,numpy中的数据类型(dtype)
‘b’ − boolean
‘i’ − (signed) integer
‘u’ − unsigned integer
‘f’ − floating-point
‘c’ − complex-floating point
‘m’ − timedelta
‘M’ − datetime
‘O’ − (Python) objects
‘S’, ‘a’ − (byte-)string
‘U’ − Unicode
‘V’ − raw data (void)
Note
numpy相比于python自带的list,优点是速度快,集成了大量的内部函数。
用numpy可以构造一维向量和多维数组,同一个数组中只能有一种数据类型。