numpy基础:numpy 创建与基本操作

numpy 创建

# 引入 numpy
import numpy as np
# 有数组创建 numpy 对象
array = np.array([[1,2,3],[4,5,6]])
array.size # 6
array.shape # (2,3)

# 设置numpy 类型
a = np.array([[1,1],[0,1]], dtype=np.int)
b = np.array([[0,1],[2,3]], dtype=np.float)

# numpy 随机数创建对象
c = np.random.random((2,4))
# 行最小
print(np.min(c, axis=1))
# 列最小
print(np.min(c, axis=0))
np.max(c)
np.sum(c)

# 按顺序创建
d = np.arange(2,14).reshape((3,4))
print(d)
# 所有数中最小
print(np.argmin(d))
# 所有数中最大
print(np.argmax(d))
# 所有数的平均数
print(np.average(d))
# 所有数的中位数
print(np.median(d))

# 逆序
d = np.arange(14,2,-1).reshape((3,4))

索引

d = np.arange(14,2,-1).reshape((3,4))
# 索引
# 按行索引
for row in d:
	print(row)
	
# 按列索引, 行列互换后
for col in d.T:
	print(col)
	
# 合并成一列
list(d.flat) # [14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3]
for item in d.flat:
	print(item)

基本操作

a = np.array([[1,1],[0,1]], dtype=np.int)
b = np.array([[0,1],[2,3]], dtype=np.int)
# 按相同位置乘
print(a*b)
# 按矩阵乘
print(np.dot(a,b))

合并

a = np.array([1,1,1])
b = np.array([2,2,2])

# 上下合并
c = np.vstack((a,b))
print(c)
# 左右合并
d = np.hstack((a,b))
print(d)
# 上下合并
c = np.concatenate((a,b,a,b,a), axis=0)

# 行上加一维度
print(a[np.newaxis,:])
# 
a = np.array([1,1,1])[:,np.newaxis] 
#[[1]
# [1]
# [1]]
b = np.array([2,2,2])[:,np.newaxis]
#[[2]
# [2]
# [2]]

d = np.concatenate((a,b,b,a), axis=1) 
#[[1 2 2 1]
# [1 2 2 1]
# [1 2 2 1]] 

e = np.concatenate((a,b,b,a), axis=0)
#[[1]
# [1]
# [1]
# [2]
# [2]
# [2]
# [2]
# [2]
# [2]
# [1]
# [1]
# [1]]

分割

a = np.arange(12).reshape((3,4))
# 按列平均分成4列
print(np.split(a, 4, axis=1))
# 按列分成3列(从左至右,分组数先满足左侧,再满足右侧)
print(np.array_split(a, 3, axis=1))

# 纵向分割
print(np.vsplit(a,3))
# [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
# 横向分割
print(np.hsplit(a,2))
# [array([[0, 1],
#       [4, 5],
#       [8, 9]]), array([[ 2,  3],
#       [ 6,  7],
#       [10, 11]])]

深拷贝

a = np.arange(12).reshape((3,4))
b = a.copy()
# c和a关联
c = a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值