自学python编程基础科学计算_Python基础与科学计算常用方法

Python基础与科学计算常用方法

本文使用的是Jupyter Notebook,Python3。你可以将代码直接复制到Jupyter Notebook中运行,以便更好的学习。

导入所需要的头文件

import numpy as np

import numpy as np

import matplotlib as mpl

from mpl_toolkits.mplot3d import Axes3D

from matplotlib import cm

import time

from scipy.optimize import leastsq

from scipy import stats

import scipy.optimize as opt

import matplotlib.pyplot as plt

from scipy.stats import norm, poisson

import math

import scipy

from scipy.interpolate import BarycentricInterpolator

from scipy.interpolate import CubicSpline

a = np.arange(0, 60, 10).reshape((-1, 1)) + np.arange(6)

print (a)

1.使用array创建

标准Python的列表(list)中,元素本质是对象。

如:L = [1, 2, 3],需要3个指针和三个整数对象,对于数值运算比较浪费内存和CPU。

因此,Numpy提供了ndarray(N-dimensional array object)对象:存储单一数据类型的多维数组。

# 通过array函数传递list对象

L = [1, 2, 3, 4, 5, 6]

print ("L = ", L)

a = np.array(L) # 数组没有逗号

print ("a = ", a)

print (type(a), type(L))

# 若传递的是多层嵌套的list,将创建多维数组

b = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

print (b)

# 数组大小可以通过其shape属性获得

print (a.shape)

print (b.shape)

# # 也可以强制修改shape

b.shape = 4, 3

print (b)

# 注:从(3,4)改为(4,3)并不是对数组进行转置,而只是改变每个轴的大小,数组元素在内存中的位置并没有改变

# 当某个轴为-1时,将根据数组元素的个数自动计算此轴的长度

b.shape = 2, -1

print (b)

print (b.shape)

b.shape = 3, 4

print (b)

# 使用reshape方法,可以创建改变了尺寸的新数组,原数组的shape保持不变

c = b.reshape((4, -1))

print ("b = \n", b)

print ('c = \n', c)

# 数组b和c共享内存,修改任意一个将影响另外一个

b[0][1] = 20

print ("b = \n", b)

print ("c = \n", c)

# 数组的元素类型可以通过dtype属性获得

print (a.dtype)

print (b.dtype)

# 可以通过dtype参数在创建时指定元素类型

d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], dtype=np.float)

f = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], dtype=np.complex)

print (d)

print (f)

# 如果更改元素类型,可以使用astype安全的转换

f = d.astype(np.int)

print (f)

# 但不要强制仅修改元素类型,如下面这句,将会以int来解释单精度float类型

d.dtype = np.int

print (d)

2.使用函数创建

如果生成一定规则的数据,可以使用NumPy提供的专门函数

arange函数类似于python的range函数:指定起始值、终止值和步长来创建数组,和Python的range类似,arange同样不包括终值;但arange可以生成浮点类型,而range只能是整数类型

a = np.arange(1, 10, 0.5)

print (a)

# linspace函数通过指定起始值、终止值和元素个数来创建数组,缺省包括终止值

b = np.linspace(1, 10, 10)

print ('b = ', b)

# 可以通过endpoint关键字指定是否包括终值

c = np.linspace(1, 10, 10, endpoint=False)

print ('c = ', c)

# 和linspace类似,logspace可以创建等比数列

# 下面函数创建起始值为10^1,终止值为10^2,有10个数的等比数列

d = np.logspace(1, 2, 9, endpoint=True)

print (d)

# 下面创建起始值为2^0,终止值为2^10(包括),有10个数的等比数列

f = np.logspace(0, 10, 10, endpoint=True, base=2)

print (f)

# 使用 frombuffer, fromstring, fromfile等函数可以从字节序列创建数组

s = 'abcdz'

g = np.fromstring(s, dtype=np.int8) # 复制对应的ASII码

print (g)

3.存取

3.1常规方法

# 数组元素的存取方法和Python的标准方法相同

a = np.arange(10)

print (a)

# 获取某个元素

print (a[3])

# 切片[3,6),左闭右开

print (a[3:6])

# 省略开始下标,表示从0开始

print (a[:5])

# 下标为负表示从后向前数

print (a[3:])

# 步长为2

print (a[1:9:2])

# 步长为-1,即翻转

print (a[::-1])

# 切片数据是原数组的一个视图,与原数组共享内容空间,可以直接修改元素值

a[1:4] = 10, 20, 30

print (a)

# 因此,在实践中,切实注意原始数据是否被破坏,如:

b = a[2:5]

b[0] = 200

print (a)

3.2 整数/布尔数组存取

3.2.1

# 根据整数数组存取:当使用整数序列对数组元素进行存取时,

# 将使用整数序列中的每个元素作为下标,整数序列可以是列表(list)或者数组(ndarray)。

# 使用整数序列作为下标获得的数组不和原始数组共享数据空间。

a = np.logspace(0, 9, 10, base=2)

print (a)

i = np.arange(0, 10, 2)

print (i)

# 利用i取a中的元素

b = a[i]

print (b)

# b的元素更改,a中元素不受影响

b[2] = 1.6

print (b)

print (a)

3.2.2

# 使用布尔数组i作为下标存取数组a中的元素:返回数组a中所有在数组b中对应下标为True的元素

# 生成10个满足[0,1)中均匀分布的随机数

a = np.random.rand(10)

print (a)

# 大于0.5的元素索引

print (a > 0.5)

# 大于0.5的元素

b = a[a > 0.5]

print (b)

# 将原数组中大于0.5的元素截取成0.5

a[a > 0.5] = 0.5

print (a)

# # # b不受影响

print (b)

3.3 二维数组的切片

a = np.arange(0, 60, 10) # 行向量

print ('a = ', a)

b = a.reshape((-1, 1)) # 转换成列向量

print (b)

c = np.arange(6)

print (c)

f = b + c # 行 + 列

print (f)

# 合并上述代码:

a = np.arange(0, 60, 10).reshape((-1, 1)) + np.arange(6)

print (a)

# 二维数组的切片

print (a[[0, 1, 2], [2, 3, 4]])

print (a[4, [2, 3, 4]])

print (a[4:, [2, 3, 4]])

i = np.array([True, False, True, False, False, True])

print (a[i])

print (a[i, 3])

4.1 numpy与Python数学库的时间比较

for j in np.logspace(0, 7, 10):

j = int(j)

x = np.linspace(0, 10, j)

start = time.clock()

y = np.sin(x)

t1 = time.clock() - start

x = x.tolist()

start = time.clock()

for i, t in enumerate(x):

x[i] = math.sin(t)

t2 = time.clock() - start

print (j, ": ", t1, t2, t2/t1)

# 4.2 元素去重

4.2.1直接使用库函数

a = np.array((1, 2, 3, 4, 5, 5, 7, 3, 2, 2, 8, 8))

print ('原始数组:', a)

# 使用库函数unique

b = np.unique(a)

print ('去重后:', b)

4.2.2 二维数组的去重,结果会是预期的么?

c = np.array(((1, 2), (3, 4), (5, 6), (1, 3), (3, 4), (7, 6)))

print (u'二维数组:\n', c)

print ('去重后:', np.unique(c))

4.2.3 方案1:转换为虚数

# r, i = np.split(c, (1, ), axis=1)

# x = r + i * 1j

x = c[:, 0] + c[:, 1] * 1j

print ('转换成虚数:', x)

print ('虚数去重后:', np.unique(x))

print (np.unique(x, return_index=True)) # 思考return_index的意义

idx = np.unique(x, return_index=True)[1]

print ('二维数组去重:\n', c[idx])

4.2.3 方案2:利用set

print ('去重方案2:\n', np.array(list(set([tuple(t) for t in c]))))

4.3 stack and axis

a = np.arange(1, 10).reshape((3, 3))

b = np.arange(11, 20).reshape((3, 3))

c = np.arange(101, 110).reshape((3, 3))

print ('a = \n', a)

print ('b = \n', b)

print ('c = \n', c)

print ('axis = 0 \n', np.stack((a, b, c), axis=0))

print ('axis = 1 \n', np.stack((a, b, c), axis=1))

print ('axis = 2 \n', np.stack((a, b, c), axis=2))

a = np.arange(1, 10).reshape(3,3)

print (a)

b = a + 10

print (b)

print (np.dot(a, b)) # dot 正常的矩阵乘法

print (a * b) # * 对应元素的相乘

a = np.arange(1, 10)

print (a)

b = np.arange(20,25)

print (b)

print (np.concatenate((a, b)))

5.绘图

5.1 绘制正态分布概率密度函数

# 自定义字体使中文正常显示

mpl.rcParams['font.sans-serif'] = [u'SimHei'] #FangSong/黑体 FangSong/KaiTi

mpl.rcParams['axes.unicode_minus'] = False

mu = 0

sigma = 1

x = np.linspace(mu - 3 * sigma, mu + 3 * sigma, 51)

y = np.exp(-(x - mu) ** 2 / (2 * sigma ** 2)) / (math.sqrt(2 * math.pi) * sigma)

print (x.shape)

print ('x = \n', x)

print (y.shape)

print ('y = \n', y)

plt.figure(facecolor='w') # 背景色设置为白色

# plt.plot(x, y, 'ro-', linewidth=2)

plt.plot(x, y, 'r-', x, y, 'go', linewidth=2, markersize=8)

plt.xlabel('X', fontsize=15)

plt.ylabel('Y', fontsize=15)

plt.title(u'高斯分布函数', fontsize=18)

plt.grid(True)

plt.show()

5.2 损失函数

# Logistic损失(-1,1)/SVM Hinge损失/ 0/1损失

plt.figure(figsize=(10,8),dpi=100) # 指定图像尺寸和dpi

x = np.array(np.linspace(start=-2, stop=3, num=1001, dtype=np.float))

y_logit = np.log(1 + np.exp(-x)) / math.log(2)

y_boost = np.exp(-x)

y_01 = x < 0

y_hinge = 1.0 - x

y_hinge[y_hinge < 0] = 0

plt.plot(x, y_logit, 'r-', label='Logistic Loss', linewidth=2)

plt.plot(x, y_01, 'g-', label='0/1 Loss', linewidth=2)

plt.plot(x, y_hinge, 'b-', label='Hinge Loss', linewidth=2)

plt.plot(x, y_boost, 'm--', label='Adaboost Loss', linewidth=2)

plt.grid() # 画格子出来

plt.legend(loc='upper right') # 图例显示位置

plt.savefig('1.png')

plt.show()

5.3 x^x

def f(x):

y = np.ones_like(x)

i = x > 0

y[i] = np.power(x[i], x[i])

i = x < 0

y[i] = np.power(-x[i], -x[i])

return y

x = np.linspace(-1.3, 1.3, 101)

y = f(x)

plt.plot(x, y, 'g-', label='x^x', linewidth=2)

plt.grid()

plt.legend(loc='upper left')

plt.show()

5.4 胸型线

x = np.arange(1, 0, -0.001)

y = (-3 * x * np.log(x) + np.exp(-(40 * (x - 1 / np.e)) ** 4) / 25) / 2

plt.figure(figsize=(5,7), facecolor='w')

plt.plot(y, x, 'r-', linewidth=2)

plt.grid(True)

plt.title(u'胸型线', fontsize=20)

# plt.savefig('breast.png')

plt.show()

5.5 心形线

t = np.linspace(0, 2*np.pi, 100)

x = 16 * np.sin(t) ** 3

y = 13 * np.cos(t) - 5 * np.cos(2*t) - 2 * np.cos(3*t) - np.cos(4*t)

plt.plot(x, y, 'r-', linewidth=2)

plt.grid(True)

plt.show()

5.6 渐开线

t = np.linspace(0, 50, num=1000)

x = t*np.sin(t) + np.cos(t)

y = np.sin(t) - t*np.cos(t)

plt.plot(x, y, 'r-', linewidth=2)

plt.grid()

plt.show()

5.7Bar

x = np.arange(0, 10, 0.1)

y = np.sin(x)

plt.bar(x, y, width=0.04, linewidth=0.2)

plt.plot(x, y, 'r--', linewidth=2)

plt.title(u'Sin曲线')

plt.xticks(rotation=-60)

plt.xlabel('X')

plt.ylabel('Y')

plt.grid()

plt.show()

6. 概率分布

6.1 均匀分布

x = np.random.rand(10000)

t = np.arange(len(x))

# plt.hist(x, 30, color='#000000', alpha=0.5, label=u'均匀分布') # alpha透明度

plt.plot(t, x, 'g.', label=u'均匀分布') # .小点, o 圈, - 线

plt.legend(loc='upper left')

plt.grid()

plt.show()

6.2 验证中心极限定理

t = 1000

a = np.zeros(10000)

for i in range(t):

a += np.random.uniform(-5, 5, 10000)

a /= t

plt.hist(a, bins=30, color='g', alpha=0.5, normed=True, label=u'均匀分布叠加')

plt.legend(loc='upper left')

plt.grid()

plt.show()

# 6.21 其他分布的中心极限定理

lamda = 10

p = stats.poisson(lamda)

y = p.rvs(size=1000)

mx = 30

r = (0, mx)

bins = r[1] - r[0]

plt.figure(figsize=(10, 8), facecolor='w')

plt.subplot(121)

plt.hist(y, bins=bins, range=r, color='g', alpha=0.8, normed=True)

t = np.arange(0, mx+1)

plt.plot(t, p.pmf(t), 'ro-', lw=2)

plt.grid(True)

N = 1000

M = 10000

plt.subplot(122)

a = np.zeros(M, dtype=np.float)

p = stats.poisson(lamda)

for i in np.arange(N):

y = p.rvs(size=M)

a += y

a /= N

plt.hist(a, bins=20, color='g', alpha=0.8, normed=True)

plt.grid(b=True)

plt.show()

6.3 Poisson分布

x = np.random.poisson(lam=5, size=10000)

print (x)

pillar = 15

a = plt.hist(x, bins=pillar, normed=True, range=[0, pillar], color='g', alpha=0.5)

plt.grid()

# plt.show()

print (a)

print (a[0].sum())

6.4 直方图的使用

mu = 2

sigma = 3

data = mu + sigma * np.random.randn(1000)

h = plt.hist(data, 30, normed=1, color='#a0a0ff')

x = h[1]

y = norm.pdf(x, loc=mu, scale=sigma)

plt.plot(x, y, 'r--', x, y, 'ro', linewidth=2, markersize=4)

plt.grid()

plt.show()

6.5 插值

rv = poisson(5)

x1 = a[1]

y1 = rv.pmf(x1)

itp = BarycentricInterpolator(x1, y1) # 重心插值

x2 = np.linspace(x.min(), x.max(), 50)

y2 = itp(x2)

cs = scipy.interpolate.CubicSpline(x1, y1) # 三次样条插值

plt.plot(x2, cs(x2), 'm--', linewidth=5, label='CubicSpine') # 三次样条插值

plt.plot(x2, y2, 'g-', linewidth=3, label='BarycentricInterpolator') # 重心插值

plt.plot(x1, y1, 'r-', linewidth=1, label='Actural Value') # 原始值

plt.legend(loc='upper right')

plt.grid()

plt.show()

7. 绘制三维图像

# x, y = np.ogrid[-3:3:100j, -3:3:100j]

# print(x,y)

u = np.linspace(-3, 3, 101)

x, y = np.meshgrid(u, u)

z = x*y*np.exp(-(x**2 + y**2)/2) / math.sqrt(2*math.pi)

# z = x*y*np.exp(-(x**2 + y**2)/2) / math.sqrt(2*math.pi)

fig = plt.figure()

ax = fig.add_subplot(111, projection='3d')

# ax.plot_surface(x, y, z, rstride=5, cstride=5, cmap=cm.coolwarm, linewidth=0.1) #

ax.plot_surface(x, y, z, rstride=5, cstride=5, cmap=cm.Accent, linewidth=0.5)

plt.show()

# cmaps = [('Perceptually Uniform Sequential',

# ['viridis', 'inferno', 'plasma', 'magma']),

# ('Sequential', ['Blues', 'BuGn', 'BuPu',

# 'GnBu', 'Greens', 'Greys', 'Oranges', 'OrRd',

# 'PuBu', 'PuBuGn', 'PuRd', 'Purples', 'RdPu',

# 'Reds', 'YlGn', 'YlGnBu', 'YlOrBr', 'YlOrRd']),

# ('Sequential (2)', ['afmhot', 'autumn', 'bone', 'cool',

# 'copper', 'gist_heat', 'gray', 'hot',

# 'pink', 'spring', 'summer', 'winter']),

# ('Diverging', ['BrBG', 'bwr', 'coolwarm', 'PiYG', 'PRGn', 'PuOr',

# 'RdBu', 'RdGy', 'RdYlBu', 'RdYlGn', 'Spectral',

# 'seismic']),

# ('Qualitative', ['Accent', 'Dark2', 'Paired', 'Pastel1',

# 'Pastel2', 'Set1', 'Set2', 'Set3']),

# ('Miscellaneous', ['gist_earth', 'terrain', 'ocean', 'gist_stern',

# 'brg', 'CMRmap', 'cubehelix',

# 'gnuplot', 'gnuplot2', 'gist_ncar',

# 'nipy_spectral', 'jet', 'rainbow',

# 'gist_rainbow', 'hsv', 'flag', 'prism'])]

欢迎关注我的公众号,新手入门资料。

wechat.jpg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php中删除文件夹内容吗,如何使用PHP删除包含内容的文件夹

小编典典此功能将允许您删除任何文件夹(只要可写)及其文件和子目录。function Delete($path){if (is_dir($path) true){$files array_diff(scandir($path), array(., ..));foreach ($files as $file){Delete(realpath($path) . / . $file);}return rmdir($path);}else if (is…

php多维数组删除指定元素,如何删除多维数组中指定元素?

[0] > Array ( [v] > 1 [fup] > 0 [n] > 服务器 [s] > Array ( [0] > Array ( [v] > 2 [fup] > 2 [n] > one [s] > Array ( [0] > Array ( [v] > 3 [fup] > 41 [n] > one ) [1] > Array ( [v] > 4 [fup] > 1 [n] > two …

python有趣的简单代码_简单几步,100行代码用Python画一个蝙蝠侠的logo

转自&#xff1a;菜鸟学Python蝙蝠侠作为DC漫画的核心人物之一&#xff0c;一直都受到广大粉丝的喜爱&#xff0c;而笔者作为DC的铁杆粉丝&#xff0c;自然也是老爷(粉丝对蝙蝠侠的昵称)的支持者。今天&#xff0c;笔者就用Python来画一个蝙蝠侠的logo&#xff0c;大概就是下图…

iis7php怎么301重定向,iis7/8设置网站301重定向的方法

准备条件&#xff1a;a、一台装有win2008以上版本的服务器 b、iis启用并且运行正常 c、在网站程序存放目录中单独创建个目录&#xff0c;目录里面留空即可(为了方便区分&#xff0c;目录名称可以设置为站点名称301&#xff0c;例如fcblog_301)1、打开Internet信息服务…

结构体内元素不确定_查漏补缺!高中三年生物最易忽略、易错的30个知识点整理不容错过...

高中生物的知识体系基本上是由大约数十个核心概念为基础构建起来的&#xff0c;这些概念包括细胞、细胞分裂、光合作用、呼吸作用、基因、染色体、遗传、变异、进化、生化系统等等&#xff0c;今天学姐来帮助你们整理一下高中三年中最容易忽略&#xff0c;也是最容易出错的30个…

基于单片机超声波测距系统的设计_一种基于UWB技术实现的测距防撞系统

叉车被广泛应用于工厂车间、仓库、流通中心和配送中心等&#xff0c;大大提高了对成件托盘货物进行装卸、堆垛和短距离运输作业的运输效率&#xff0c;几乎是所有车间必不可少的运输工具。但目前&#xff0c;简单方便的同时&#xff0c;安全事故(剐蹭、碰撞、碾压、撞车等)却也…

php zend 多个站错误,php – 如何显示Zend框架抛出的异常错误

APPLICATION_ENV环境变量的值是多少.ZF应用程序中的标准public / index.php执行以下操作&#xff1a;// Define application environmentdefined(APPLICATION_ENV)|| define(APPLICATION_ENV, (getenv(APPLICATION_ENV) ? getenv(APPLICATION_ENV) : production));这意味着如果…

vb.net中递归退到最外层_数组中的逆序对

题目描述在数组中的两个数字&#xff0c;如果前面一个数字大于后面的数字&#xff0c;则这两个数字组成一个逆序对。输入一个数组&#xff0c;求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的…

php5 数据库框架,数据库 · FastAdmin - 基于ThinkPHP5的极速后台开发框架文档 · 看云...

这里提供的是数据库表字段规则在你创建表时使用&#xff0c;当按如下的规则进行字段命名、类型设置和备注时使用php think crud -t 表名生成CRUD时会自动生成对应的HTML元素和组件## 根据字段类型| 类型 | 备注 | 类型说明 || --------- | ---- | ----------------------------…

python的安装包下载_科学网—[转载]python常用的安装包下载 - 林清莹的博文

Python常用的安装包下载1.首先应该下载dlib安装包(例如&#xff1a;dlib-19.8.1-cp36-cp36m-win_amd64.whl)可以通过此网址进行下载对应的dlib包 https://pypi.org/simple/dlib/2.需要使用pip进行安装(之前很多博客说要安装vs2015&#xff0c;然后借用其编译的dlib才能实现在…

java实现条形图,JavaFX条形图

本文概述通常, 条形图可以定义为使用矩形条形表示数据的图。条的长度表示绘制在其中一根轴上的精确数值数据值。矩形条可以在图表上水平或垂直绘制。在下图中, 条形图显示了工程各个分支中的学生人数。 X轴是类别轴, 显示了不同的分支, 而Y轴是数字轴, 显示了特定分支中的学生人…

python缺失值填充均值法_pandas 使用均值填充缺失值列的小技巧分享

pd.DataFrame中通常含有许多特征&#xff0c;有时候需要对每个含有缺失值的列&#xff0c;都用均值进行填充&#xff0c;代码实现可以这样&#xff1a;for column in list(df.columns[df.isnull().sum() > 0]):mean_val df[column].mean()df[column].fillna(mean_val, inpl…

php excel 垂直居中,完美实现文字图片水平垂直居中

垂直居中是一个历史悠久的大问题&#xff0c;要做到兼容所有浏览器少不了要花点时间&#xff0c;网上也流传了很多解决方案&#xff0c;但没发现比我现在用的方案更完美&#xff0c;至少在我的项目是如此。项目中要用到垂直居中而碰到兼容性问题的&#xff0c;一般都是以下几种…

cd短是什么意思_每日命令|pwd、cd

01 命令简介上回说到《每日命令 | ls》&#xff0c;今天我们来说一说pwd命令和cd命令。pwd命令——返回当前工作目录名称。cd命令——改变工作目录。什么是工作目录&#xff1f;举个例子&#xff1a;我在北京上班&#xff0c;那我的工作地点就是北京&#xff1b;后来我到上海上…

sql 查询表结构_SQL查询语句的完整结构解析

SELECT语句完整的句法模板&#xff1a;SELECT [DISTINCT] FROM [ JOIN ON ][WHERE ][GROUP BY [HAVING ]][ORDER BY &#xff0c;...]上述句法模版中的[ ]表示该部分可选。SELECT整个语句的执行过程为&#xff1a;(1) 读取FORM子句中表、视图的数据。(2) 存在连接表时&…

php foreach ,PHP学习之foreach循环时加符号的说明

本文主要内容是关于PHP的foreach循环时加&符号的说明&#xff0c;感兴趣的朋友可以了解一下。foreach时加&符号&#xff1a;遍历的同时改变原数组即修改数据或者增加数据。$arr [a, b, c];foreach ($arr as $key > &$value) {$value $value . 111;}echo json_…

基于matlab实现的云模型计算隶属度,基于MATLAB实现的云模型计算隶属度

”云”或者’云滴‘是云模型的基本单元&#xff0c;所谓云是指在其论域上的一个分布&#xff0c;可以用联合概率的形式(x&#xff0c; u)来表示云模型用三个数据来表示其特征期望&#xff1a;云滴在论域空间分布的期望&#xff0c;一般用符号Εx表示。熵&#xff1a;不确定程度…

notebook python 内嵌 数据库_python数据分析:在jupyter notebook上使用pythonSQL做数据分析...

python数据分析&#xff1a;在jupyter notebook上使用python&SQL做数据分析发布时间&#xff1a;2019-01-14 21:14,浏览次数&#xff1a;1143, 标签&#xff1a;pythonjupyternotebookSQL类似于在jupyter上使用R语言&#xff0c;同样可以使用SQL语句&#xff1a;详细见gith…

php优化上百次foreach,php – 优化数千个项目的foreach

我在一组25,000个结果中运行下面的代码.我需要优化它,因为我达到了内存限制.$oldproducts Oldproduct::model()->findAll(); /*(here i have 25,000 results)*/foreach($oldproducts as $oldproduct) :$criteria new CDbCriteria;$criteria->compare(someid, $oldprodu…

二陈丸配什么吃不上火_宝妈一个人带孩子是什么感觉?前三种场景,不知道是怎么熬过来的...

导语&#xff1a;很多人认为一个家庭主妇很轻松&#xff0c;每天就带带孩子&#xff0c;其他什么都不需要做&#xff0c;远远没有那些人说的那么辛苦&#xff0c;无论是老公还是很多婆婆都认为是在家享福呢&#xff0c;经常就会甩出一句话“每天不就带个孩子吗&#xff1f;至于…