python-Numpy学习(全)

一、数组的创建与操作

1.获取数组的元素

import  numpy as np
arr1 = np.array([3,10,12,5,6,8,9,111])
print(arr1.shape)
arr2 = np.reshape(arr1,(2,4))
print(arr2)
print(arr1)
#取出10,12
print(arr1[1:3])

#取出第一行第三个 12
print(arr2[0,2])
#3 10 12
#6 8 9
#print(arr2[0:2,0:3])
#取出10 8 第二列的所有数据
print(arr2[:,1])
#取出12 5 第一行的 第3列和第4列
print(arr2[:1,2:4])
print("\n")
#取出的是第二行
print(arr2[1,:])
#取出的是第一行第二列,第二行第4列
print(arr2[[0,-1],[1,3]])
print("------------------------------------")
#使用了ix_后就会打破上面按照row col取值,下面就可以获取 0 -> -1行 2行的数据并且是第2和第4列
#也就是 10 5
# 8 111
print(arr2[np.ix_([0,-1],[1,3])])
print("------------------------------------")
print(arr2[0:,1:4])
print("------------------------------------")
#获取的结果和上面的一样,通过ix_就可以将某一行的某几列全部输出,前面的是行号,后面的是列号
arr3 = np.array([12,5,69,88,99,77,8,5,5,1212,55,66,997,5,82,12])
arr4 = np.resize(arr3,(4,4))
print(arr4)
print(arr4[np.ix_([0,1,3],[1,2,3])])

2.读文件和重新定义数组形状

import numpy as np

stu_score = np.genfromtxt(fname=r'stu_socre.txt', delimiter='\t', skip_header=1)
print(type(stu_score))
print(stu_score)
# c查看维度,维度是2
print(stu_score.ndim)
# 查看行列数
print(stu_score.shape)
# 查看数组的数据类型
print(stu_score.dtype)
# 查看数组元素的个数
print(stu_score.size)
# 改变数组形状
stu_score1 = stu_score.reshape((69, 100))
print("---------------------------reshape---------------------------------")
# 不会变化
print(stu_score.shape)
# 新的数组变成 69 100
print(stu_score1.shape)
print("----------------------------resize-------------------------")
stu_score2 = stu_score.resize(10, 690)
#resize不会返回预览所以一直返回的是None,stu_score会直接被改变
print(stu_score.shape)
print("-------------------------正常以行的顺序进行降维------------------------")
print(stu_score.ravel())
print(stu_score.flatten())
print(stu_score.reshape(-1))
print("-------------------------以列的顺序进行降维-----------------")
print(stu_score.ravel(order='F'))
print(stu_score.flatten(order='F'))
print(stu_score.reshape(-1,order='F'))
print("-------------------------三种降维方式是否克隆的区别--------------")
stu_score.flatten()[2]=2000
print('flatten \n',stu_score)
stu_score.ravel()[0]=2000
print('ravel \n',stu_score)
stu_score.reshape(-1)[1]=2000
print('reshape \n',stu_score)


#上述的结果表名,flatten没有改变原数组所以他是一个克隆的方式,ravel和reshape都改变了原数组所以他返回的只是一个视图

print("------------------------- vstack and row_stack-------------------")
arr4 = np.array([[1,10,100],[2,20,200],[3,30,300]])
arr5 = np.array([1,2,3])
#需要保证列的个数是相同的,然后添加行数
print('vstack纵向堆叠数组:\n',np.vstack((arr4,arr5)))
print('row_stack纵向堆叠数组\n',np.row_stack([arr5,arr4]))
print("--------------------------hstack and column_stack--------------")
#需要保证行的个数是相同的,然后添加列数
arr6 = np.array([[12,14],[13,16],[15,18]])
print('hstack横向堆叠数组:\n',np.hstack((arr6,arr4)))
print('column_stack横向堆叠数组:\n',np.column_stack((arr6,arr4)))

二、数组的基本运算符

import numpy as np

math = np.array([98, 83, 86, 92, 67, 82])
english = np.array([68, 74, 66, 82, 75, 89])
chinese = np.array([92, 83, 76, 85, 87, 77])
total_symbol = math + english + chinese
total_fun = np.add(chinese, np.add(math, english))
print("---------------加法运算--------------")
print("符号加法\n", total_symbol)
print("函数加法\n", total_fun)
print("---------------除法运算--------------")
height = np.array([165, 177, 158, 169, 173])
weight = np.array([62, 73, 59, 72, 80])
BMI_symbol = weight / (height / 100) **
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值