赞
踩
使用前导入numpy
import numpy as np
# 假定此文件分隔符为“,”,每个数据类型均为字符类型
data = np.genfromtxt("data.dat", delimiter=",", dtype=str)
data = np.genfromtxt("data.dat", delimiter=",", dtype=str)
print(data)
[['a' '1']
['b' '2']
['c' '3']
['d' '4']
['e' '5']]
np.array()负责将传入的数据转化为ndarray格式的矩阵
ndarray内的数据类型相同,如果传入参数时存在转换,则向高类型转换
# 传入一维数组
vector1 = np.array([1,2,3,4,5])
# 传入二维数组
vector2 = np.array([[1,2,3], [3,4,5], [4,5,6]])
# 传入一维数组
vector1 = np.array([1, 2, 3, 4, 5])
# 传入二维数组
vector2 = np.array([[1, 2, 3], [3, 4, 5], [4, 5, 6]])
print("vector1 is :\n", vector1)
print("vector2 is :\n", vector2)
vector1 is :
[1 2 3 4 5]
vector2 is :
[[1 2 3]
[3 4 5]
[4 5 6]]
print(vector2.shape)
print(vector2.dtype)
print(vector2.shape)
print(vector2.dtype)
(3, 3)
int32
npName[第一维, 第二维,……, 第n维]
npName[1:3]
截取某列
比如取第二列
npName[:, 1]
截取某几列
比如第2到3列
npName[:, 1:3]
截取某一块(第几行的第几列)
比如第一行到第二行的第一列到第二列
npName[0:2, 0:2]
print(vector2[:, 1])
print()
print(vector2[:, 1:3])
print()
print(vector2[0:2, 0:2])
[2 4 5]
[[2 3]
[4 5]
[5 6]]
[[1 2]
[3 4]]
# 判断vector1中的元素是否等于3,如果等于,返回True,反之返回False
tmp = vector1 == 3
array([False, False, True, False, False])
vector1 == 3
array([False, False, True, False, False])
vector2 == 4
array([[False, False, False],
[False, True, False],
[ True, False, False]])
tmp = (vector2 == 4)
vector2[tmp]
array([4, 4])
npNmae = npName.astype(type)
tmp = np.array(["1", "1", "1", "1"])
print(tmp.dtype)
# 更改类型为int
tmp = tmp.astype(int)
print(tmp.dtype)
# 更改类型为float
tmp = tmp.astype(float)
print(tmp.dtype)
<U1
int32
float64
按每行加
npName.sum(axis = 1)
按每列加
npName.sum(axis = 0)
两个矩阵相减
要求维数以及行列数严格相同,就是矩阵减法
矩阵减去一个数
矩阵内每个元素均减去那个数
npName**n 即为n次方
* 对应位置相乘
严格的矩阵乘法
A.dot(B)
np.dot(A, b)
print(vector2, "\n")
# 按行相加
print("按行相加:", vector2.sum(axis=1), "\n")
# 按列相加
print("按列相加:", vector2.sum(axis=0))
[[1 2 3]
[3 4 5]
[4 5 6]]
按行相加: [ 6 12 15]
按列相加: [ 8 11 14]
np.arange(start = 0, end, step = 1)会生成一个一维的从0到n-1的整数数组
Tips: 步长可调
tmp = np.arange(6)
[0,1,2,3,4,5]
npName.reshape(行数m,列数n)可返回一个将npName矩阵变为m*n后的矩阵
new_tmp = tmp.reshape(2,3)
tmp = np.arange(15)
print(tmp, "\n")
tmp = tmp.reshape(5, 3)
print(tmp)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]
[12 13 14]]
npName.ndim
npName.size
print(tmp.ndim)
print(tmp.size)
2
15
将矩阵初始化为全为0的三行四列二维矩阵
tmp = np.zeros((3, 4))
将矩阵初始化为全为1的二行三列二维矩阵,且元素类型全为int
tmp = np.ones((2,3),dtype = np.int32)
返回对传入的矩阵的每个元素取正弦后的矩阵
tmp = np.zeros((3, 4))
print(tmp, "\n")
tmp = np.ones((2, 3), dtype=np.int32)
print(tmp)
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
[[1 1 1]
[1 1 1]]
np.exp(npName)
返回对矩阵的每个元素做e的指数运算后的矩阵
np.sqrt(npName)
返回对矩阵的每个元素开平方后的矩阵
np.floor(npName) 返回向下取整的矩阵
返回一维向量
返回npName的转置矩阵
按行拼接 np.hstack((A, B))
将矩阵A与B按行拼接后返回此矩阵
按列拼接 np.vstack((A, B))
将矩阵A与B按列拼接后返回此矩阵
按行(竖着)分割 np.hsplit(npName, n)
将npName竖着切割为n份,并返回一个包含这三个数组的一个list
指定位置切割 np.hsplit(npName, (m, n))
在第m个元素与第n个元素之前竖着分割,返回list
按列(横着)切割 np.vsplit(npName, n)
将npName横着切割为n份,返回list
生成一个二维m*n矩阵,数值默认从-1到+1
在区间内平均取number个数,返回一个一维矩阵
A = np.array([1,2,3,4,5,6])
B = A
B和A指向同一个对象,id相同
Tips: 可类比为数据库中的视图,只改变了外观没改变内容
A = np.array([1,2,3,4,5,6])
B = A.view()
B和A是两个不同的对象,但是元素相同,区别仅在于表示形式可以不同
A = np.array([1,2,3,4,5,6])
B = A.copy()
B和A就完全隔离了
# 复制示例代码
# 指针拷贝
print("指针拷贝")
A = np.zeros((3, 4))
B = A
A.shape = 2, 6
A[1, 1] = 3
print("A = ", A, "\n")
print("B = ", B, "\n\n")
# 浅拷贝
print("浅拷贝")
A = np.zeros((3, 4))
B = A.view()
A.shape = 2, 6
A[1, 1] = 3
print("A = ", A, "\n")
print("B = ", B, "\n\n")
# 深拷贝
print("深拷贝")
A = np.zeros((3, 4))
B = A.copy()
A.shape = 2, 6
A[1, 1] = 3
print("A = ", A, "\n")
print("B = ", B, "\n\n")
指针拷贝 A = [[0. 0. 0. 0. 0. 0.] [0. 3. 0. 0. 0. 0.]] B = [[0. 0. 0. 0. 0. 0.] [0. 3. 0. 0. 0. 0.]] 浅拷贝 A = [[0. 0. 0. 0. 0. 0.] [0. 3. 0. 0. 0. 0.]] B = [[0. 0. 0. 0.] [0. 0. 0. 3.] [0. 0. 0. 0.]] 深拷贝 A = [[0. 0. 0. 0. 0. 0.] [0. 3. 0. 0. 0. 0.]] B = [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]]
返回当行/列的最大值的索引组成的列表
npName.argmax(axis = 1) 按行找最大值
npName.argmax(axis = 0) 按列找最大值
np.tile(A, (m,n))
把A作为一个元素去填充m*n矩阵
np.tile(A,(3,4))
array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 3., 0., 0., 0., 3., 0., 0., 0., 3., 0., 0., 0., 3.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 3., 0., 0., 0., 3., 0., 0., 0., 3., 0., 0., 0., 3.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 3., 0., 0., 0., 3., 0., 0., 0., 3., 0., 0., 0., 3.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。