5红球和蓝球,都是首荐帮助Python的

2019-08-31 作者:编程   |   浏览(141)

NumPy 如何生成多维数组的章程,numpy生成多维数组

Python将来是最热点的人造智能语言,各样工具的支撑如Google的Tensorflow,都以首要推荐帮衬Python的。

而是,与LAND语言差别,Python语言设计时,并不曾思量对于矩阵运算,总结总括等功用做专门项目协助。于是大家供给NumPy库来补足这一力量上的阙如。

NumPy是Python的名牌扩大库,也便是Python中的MATLAB。

Numpy 中,ndarray 类具备四个参数,它们各自为:

  1. shape:数组的模样。
  2. dtype:数据类型。
  3. buffer:对象暴光缓冲区接口。
  4. offset:数组数据的偏移量。
  5. strides:数据上升的幅度。
  6. order:{'C','F'},以行或列为主排列顺序。

怎么着生成多维数组

初识ndarray多维数组

在算法中我们最平日应用的正是矩阵,大家就从矩阵开始聊到吧。
NumPy中,使用二维的多维数组ndarray来积攒矩阵。

例:

a3 = np.array([[1,0],[0,1]])

会生成那样三个多维数组对象

array([[1, 0],
  [0, 1]])

生成数组连串

通过开端值、甘休值和宽窄值生成数组体系 - arange

可以通过arange函数来变化内定最先值,甘休值和步长值的一维数组。请留心,甘休值并不含有在种类中,约等于说甘休值是开区间。

In [25]: a4 = np.arange(1,10,1)

In [26]: a4
Out[26]: array([1, 2, 3, 4, 5, 6, 7, 8, 9])

线性体系 - linspace

与arange类似,linspace通过给定初值、终值和要素个数来生成体系。是还是不是含有终值能够透过endpoint属性来安装。

例:

In [37]: a8 = np.linspace(1,10,10,endpoint=True)

In [38]: a8
Out[38]: array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])

等比连串 - logspace

除此而外线性的等差数列,大家也得以由此等比数列的方法来生成一维数组。

暗许是以10的n次方为参数,举例logspace(0,4,3)的情趣是,初值为10的0次方,即1,终值是10的4次方,即100,一共生成3个值。

例,生成[1,100,10000]

In [47]: a9 = np.logspace(0,4,3)

In [48]: a9
Out[48]: array([ 1.00000000e 00, 1.00000000e 02, 1.00000000e 04])

大家当然也能够修改基数,比如改成3:

In [53]: a10 = np.logspace(1,5,3,base=3)

In [54]: a10
Out[54]: array([ 3., 27., 243.])

变动多维数组的形制

万一有三个一维数组要转为多维数组,能够通过修改shape属性来兑现。

咱俩得以先将数据存在一维数组中,能够用列表只怕元组来生成一维数组,它们是等价的:

例:

In [2]: a1 = np.array([1,2,3,4])

In [3]: a1
Out[3]: array([1, 2, 3, 4])

In [4]: a2 = np.array((1,0,0,1))

In [5]: a2
Out[5]: array([1, 0, 0, 1])

大家通过shape属性来查阅八个数组的形态:

In [14]: a1.shape
Out[14]: (4,)

In [15]: a2.shape
Out[15]: (4,)

shape属性是能够间接修改的,举个例子大家想把地点的a1改成2 x 2的矩阵,就平素改shape值就是了:

In [16]: a1.shape = 2,2

In [17]: a1
Out[17]: 
array([[1, 2],
  [3, 4]])

万一能鲜明贰个轴,另五个得以赋-1让系统和睦去算。

例:

In [18]: a2.shape= 2,-1

In [19]: a2
Out[19]: 
array([[1, 0],
  [0, 1]])

要是想维持这些数组不改变,生成多少个造型更动的新数组,能够调用reshape方法。

例:大家将三个二十五个成分的数组生成两个5x5的新数组

In [59]: a11 = np.linspace(1,100,25)

In [60]: a11
Out[60]: 
array([ 1. , 5.125, 9.25 , 13.375, 17.5 , 21.625,
   25.75 , 29.875, 34. , 38.125, 42.25 , 46.375,
   50.5 , 54.625, 58.75 , 62.875, 67. , 71.125,
   75.25 , 79.375, 83.5 , 87.625, 91.75 , 95.875, 100. ])

In [61]: a12 = a11.reshape(5,-1)

In [62]: a12
Out[62]: 
array([[ 1. , 5.125, 9.25 , 13.375, 17.5 ],
  [ 21.625, 25.75 , 29.875, 34. , 38.125],
  [ 42.25 , 46.375, 50.5 , 54.625, 58.75 ],
  [ 62.875, 67. , 71.125, 75.25 , 79.375],
  [ 83.5 , 87.625, 91.75 , 95.875, 100. ]])

直白生成多维数组

生成全0的数组

zeros生成全都以0的数组,第三个参数是shape

例:

In [65]: np.zeros((10,10))
Out[65]: 
array([[ 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., 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.],
  [ 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.]])

生成全都以1的数组

例:

In [66]: np.ones((5,5))
Out[66]: 
array([[ 1., 1., 1., 1., 1.],
  [ 1., 1., 1., 1., 1.],
  [ 1., 1., 1., 1., 1.],
  [ 1., 1., 1., 1., 1.],
  [ 1., 1., 1., 1., 1.]])

只生成空数组

empty不赋初值,是最高效的不二等秘书诀

例:

In [67]: np.empty((3,3))
Out[67]: 
array([[ 1. , 2.125, 3.25 ],
  [ 4.375, 5.5 , 6.625],
  [ 7.75 , 8.875, 10. ]])

由此函数来生成数组

经过fromfunction函数能够透过一个函数来生成想要的数组。

例,生成九九乘法表:

In [125]: def mul2(x,y):
  ...:  return (x 1)*(y 1)
  ...: 

In [126]: np.fromfunction(mul2,(9,9))
Out[126]: 
array([[ 1., 2., 3., 4., 5., 6., 7., 8., 9.],
  [ 2., 4., 6., 8., 10., 12., 14., 16., 18.],
  [ 3., 6., 9., 12., 15., 18., 21., 24., 27.],
  [ 4., 8., 12., 16., 20., 24., 28., 32., 36.],
  [ 5., 10., 15., 20., 25., 30., 35., 40., 45.],
  [ 6., 12., 18., 24., 30., 36., 42., 48., 54.],
  [ 7., 14., 21., 28., 35., 42., 49., 56., 63.],
  [ 8., 16., 24., 32., 40., 48., 56., 64., 72.],
  [ 9., 18., 27., 36., 45., 54., 63., 72., 81.]])

上述就是本文的全体内容,希望对大家的求学抱有援助,也期待大家多多补助帮客之家。

怎样生成多维数组的点子,numpy生成多维数组 Python未来是最卖得快的人造智能语言,各样工具的支撑如Google的Tensorflow,都以首要推荐帮助Py...

Python数据分析之双色球计算五个红和蓝球哪组合比例高的方式,python数据分析

正文实例陈述了Python数据剖判之双色球总括八个红和蓝球哪组合比例高的主意。分享给咱们供咱们参照他事他说加以考察,具体如下:

总结三个红球和蓝球,哪个组合最多,呈现前19组数据

#!/usr/bin/python
# -*- coding:UTF-8 -*-
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import operator
#导入数据
df = pd.read_table('newdata.txt',header=None,sep=',')
tdate = sorted(df.loc[:,0])
# print tdate
#第1、2列的红球
h1 = df.loc[:,1:2].values
# print h1
#第2、3列的红球
h2 = df.loc[:,2:3].values
#第3、4列的红球
h3 = df.loc[:,3:4].values
#第4、5列的红球
h4 = df.loc[:,4:5].values
#第5、6列的红球
h5 = df.loc[:,5:6].values
#蓝球
b1 = df.loc[:,7:7].values
# print b1
#第1、3列红球
h6 = df.loc[:,1:3:2].values
h7 = df.loc[:,1:4:3].values
h8 = df.loc[:,1:5:4].values
h9 = df.loc[:,1:6:5].values
h10 = df.loc[:,2:4:2].values
h11 = df.loc[:,2:5:3].values
h12 = df.loc[:,2:6:4].values
h13 = df.loc[:,3:5:2].values
h14 = df.loc[:,3:6:3].values
#第4、6列红球
h15 = df.loc[:,4:6:2].values
#将蓝球添加到各红球组中(有2列数据变为3列数据),之后将所有数据按列向合并
data2 = np.append(h1, b1, axis=1)
for i in [h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13,h14,h15]:
  data1 = np.append(i, b1, axis=1)
  data2 = np.append(data2, data1, axis=0)
print data2
data1 = pd.DataFrame(data2)
#写入到2hldata.csv文件中
data1.to_csv('2hldata.csv',index=None,header=None)
#读取文件,进行统计,并且从大倒小排序
f = open("2hldata.csv")
count_dict = {}
for line in f.readlines():
  line = line.strip()
  count = count_dict.setdefault(line, 0)
  count  = 1
  count_dict[line] = count
sorted_count_dict = sorted(count_dict.iteritems(), key=operator.itemgetter(1), reverse=True)
# for item in sorted_count_dict:
#   print "%s,%d" % (item[0], item[1])
#重置DataFrame的index
fenzu = pd.DataFrame(sorted_count_dict).set_index([0])
print fenzu
x = list(fenzu.index[:19])
y = list(fenzu.values[:19])
print x
print y
#将index替换成数值,便于画图使用
s = pd.Series(range(1,len(x) 1), index=x)
plt.figure(figsize=(12,8),dpi=80)
plt.legend(loc='best')
plt.bar(s,y,alpha=.5, color='r',width=0.8)
plt.title('The two red and one blue ball number')
plt.xlabel('two red and one blue number')
plt.ylabel('times')
#将原来index的内容显示出来
plt.xticks(s,x, rotation=30,size=10,ha='left')
plt.show()

来得结果:

图片 1

能够看看红球20、26和蓝球9以及红球17、21和蓝球14,现身次数最多拾三回

中期的3红球和蓝球,4红球和蓝球,5红球和蓝球,6红球和蓝球的计算,基本思路一致。

更加多关于Python相关内容感兴趣的读者可查看本站专项论题:《Python数学生运动算技艺计算》、《Python字符串操作本领汇总》、《Python编码操作本领计算》、《Python数据结构与算法教程》、《Python函数使用技能计算》、《Python入门与进级非凡教程》及《Python文件与目录操作才干汇总》

意在本文所述对大家Python程序设计有所支持。

本文实例陈述了Python数据分析之双色球计算八个红和蓝球哪组...

Python网络编制程序之TCP与UDP合同套接字用法示例,pythonudp

本文实例陈述了Python互联网编制程序之TCP与UDP左券套接字用法。分享给大家供大家参谋,具体如下:

TCP协议

劳动器端:

#!/usr/bin/env python
from socket import *
from time import ctime
HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM) ##创建服务器TCP套接字
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
  print 'waiting for connection...'
  tcpCliSock, addr = tcpSerSock.accept() ##等待客户端连接
  print '...connected from:', addr
  while True:
    data = tcpCliSock.recv(BUFSIZ) ##监听客户端是否发送消息
    if not data:
      break
    tcpCliSock.send('[%s] %s' % (
      ctime(), data))
  tcpCliSock.close()
tcpSerSock.close()

客户端:

#!/usr/bin/env python
from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpCliSock = socket(AF_INET, SOCK_STREAM)  ##创建客户端TCP套接字
tcpCliSock.connect(ADDR) ##连接服务器
while True:
  data = raw_input('> ')
  if not data:
    break
  tcpCliSock.send(data)
  data = tcpCliSock.recv(BUFSIZ) ##监听客户端发送消息
  if not data:
    break
  print data
tcpCliSock.close()

UDP协议

劳务器端:

#!/usr/bin/env python
from socket import *
from time import ctime
HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
udpSerSock = socket(AF_INET, SOCK_DGRAM)
udpSerSock.bind(ADDR)
while True:
  print 'waiting for message...'
  data, addr = udpSerSock.recvfrom(BUFSIZ)##监听并接受客户端发的消息
  udpSerSock.sendto('[%s] %s' % (  ##给消息加上时间戳并返回给客户端
    ctime(), data), addr)
  print '...received from and returned to:', addr
udpSerSock.close()

客户端:

#!/usr/bin/env python
from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
udpCliSock = socket(AF_INET, SOCK_DGRAM)
while True:
  data = raw_input('> ')
  if not data:
    break
  udpCliSock.sendto(data, ADDR) ##给服务器发送数据
  data, ADDR = udpCliSock.recvfrom(BUFSIZ) ##客户端接受带时间戳的数据
  if not data:
    break
  print data
udpCliSock.close()

更加多关于Python相关内容可查阅本站专项论题:《Python Socket编制程序技术总计》、《Python数据结构与算法教程》、《Python函数使用技巧总计》、《Python字符串操作手艺汇总》、《Python入门与晋级精彩教程》及《Python文件与目录操作技艺汇总》

期望本文所述对大家Python程序设计具备支持。

本文实例叙述了Python互联网编制程序之TCP与UDP左券套接字用法。分享给大家供大家参照他事他说加以考察,具体...

python验证码辨识实例代码,python验证码实例

本文钻探的最重纵然Python验证码辨识的连带代码,具体如下。

Talk is cheap, show you the Code!

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from PIL import Image

#打开图像
im=np.array(Image.open('yzm.png'))

#得到图像3个维度
h,w,san=im.shape

X=[(h-x,y) for x in range(h) for y in range (w) if im[x][y][2]<200]

#将X转换成numpy的array类型,方便后续运算操作
X=np.array(X)

n_clusters=4
k_means=KMeans(init='k-means  ',n_clusters=n_clusters)
k_means.fit(X)

k_means_labels=k_means.labels_
k_means_cluster_centers=k_means.cluster_centers_
k_means_labels_unique=np.unique(k_means_labels)

colors=['#4EACC5','#FF9C34','#4E9A06','#FF3300']
plt.figure()
plt.hold(True)
for k,col in zip(range(n_clusters),colors):
 my_members=k_means_labels==k
 cluster_center=k_means_cluster_centers[k]
 plt.plot(X[my_members,1],X[my_members,0],'w',markerfacecolor=col,marker='.')
 plt.plot(cluster_center[1],cluster_center[0],'o',markerfacecolor=col,markeredgecolor='k',markersize=6)

plt.title('KMeans')
plt.grid(True)
plt.show()

本文由小鱼儿玄机30码发布于编程,转载请注明出处:5红球和蓝球,都是首荐帮助Python的

关键词: 小鱼儿玄机30码