NumPy 超詳細(xì)教程(1):NumPy 數(shù)組

NumpyPython 中科學(xué)計算的核心庫,NumPy 這個詞來源于 NumericalPython 兩個單詞。它提供了一個高性能的多維數(shù)組對象,以及大量的庫函數(shù)和操作,可以幫助程序員輕松地進(jìn)行數(shù)值計算,廣泛應(yīng)用于機(jī)器學(xué)習(xí)模型、圖像處理和計算機(jī)圖形學(xué)、數(shù)學(xué)任務(wù)等領(lǐng)域。

Numpy 數(shù)組:ndarray

NumPy 中定義的最重要的對象是稱為 ndarrayN 維數(shù)組類型,它是描述相同類型的元素集合。ndarray 中的每個元素都是數(shù)據(jù)類型對象(dtype)的對象。ndarray 中的每個元素在內(nèi)存中使用相同大小的塊。

numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
參數(shù) 描述
object 任何暴露數(shù)組接口方法的對象
dtype 數(shù)據(jù)類型
copy 如果為 True,則 object 對象被復(fù)制,否則,只有當(dāng)__array__返回副本,object 是嵌套序列,或者需要副本來滿足任何其他要求(dtype,order等)時,才會生成副本。
order 指定陣列的內(nèi)存布局。 如果 object 不是數(shù)組,則新創(chuàng)建的數(shù)組將按行排列(C),如果指定了(F),則按列排列。 如果 object 是一個數(shù)組,則以下成立。C(按行)、F(按列)、A(原順序)、K(元素在內(nèi)存中的出現(xiàn)順序)
subok 默認(rèn)情況下,返回的數(shù)組被強(qiáng)制為基類數(shù)組。 如果為 True,則返回子類。
ndmin 返回數(shù)組的最小維數(shù)

例一:最簡單的示例

import numpy as np

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

print(b)
print(type(b))

輸出:

[1 2 3]
<class 'numpy.ndarray'>

注意:list 打印顯示是 [1, 2, 3],而 ndarray 打印顯示是 [1 2 3],當(dāng)中沒有逗號。

例二:dtype 參數(shù)用法示例
NumPy 支持比 Python 更多種類的數(shù)值類型

import numpy as np

a = [1, 2, 3]
b = np.array(a, dtype=np.float_)
# 或者
b = np.array(a, dtype=float)

print(b)
print(b.dtype)
print(type(b[0]))

輸出:

[1. 2. 3.]
float64
<class 'numpy.float64'>

例三:copy 參數(shù)的用法

import numpy as np

a = np.array([1, 2, 3])
b = np.array(a, copy=True)
a[0] = 0

print(a)
print(b)

輸出:

[0 2 3]
[1 2 3]

可以看到 ab 的值不同,說明 ba 的副本,兩個是不同的對象。

import numpy as np

a = np.array([1, 2, 3])
b = np.array(a, copy=False)
a[0] = 0

print(a)
print(b)

輸出:

[0 2 3]
[0 2 3]

a 改變同時引起了 b 的改變,說明 ab 指向的是同一個對象。

例四:ndmin 參數(shù)用法示例

import numpy as np

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

print(b)

輸出:

[[1 2 3]]

可以看到結(jié)果已經(jīng)變成了二維數(shù)組。

例五:subok 參數(shù)用法示例
看解釋不是很清楚,看下面這個例子就會明白許多。其中 matrix 是矩陣,將在之后的內(nèi)容中介紹。

import numpy as np

a = np.matrix('1 2 7; 3 4 8; 5 6 9')
print(type(a))
print(a)
at = np.array(a, subok=True)
af = np.array(a, subok=False)
print(type(at))
print(type(af))

輸出:

<class 'numpy.matrix'>
[[1 2 7]
 [3 4 8]
 [5 6 9]]
<class 'numpy.matrix'>
<class 'numpy.ndarray'>

NumPy 數(shù)組屬性

NumPy 數(shù)組的維度(又稱維數(shù))稱為秩(rank),一維數(shù)組的秩為 1,二維數(shù)組的秩為 2,以此類推。
NumPy 中,每一個線性的數(shù)組稱為是一個軸(axis),也就是維度(dimensions)。

屬性 說明
ndarray.ndim 秩,即軸的數(shù)量或維度的數(shù)量
ndarray.shape 數(shù)組的維度,對于矩陣,n 行 m 列
ndarray.size 數(shù)組元素的總個數(shù),相當(dāng)于 .shape 中 n*m 的值
ndarray.dtype ndarray 對象的元素類型
ndarray.itemsize ndarray 對象中每個元素的大小,以字節(jié)為單位
ndarray.flags ndarray 對象的內(nèi)存信息
ndarray.real ndarray 元素的實(shí)部(復(fù)數(shù)的實(shí)部)
ndarray.imag ndarray 元素的虛部(復(fù)數(shù)的虛部)
ndarray.data 包含實(shí)際數(shù)組元素的緩沖區(qū),由于一般通過數(shù)組的索引獲取元素,所以通常不需要使用這個屬性。

1、ndarray.shape

返回一個包含數(shù)組維度的元組,對于矩陣,n 行 m 列,它也可以用于調(diào)整數(shù)組維度。
例一:

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.shape)

輸出:

(2, 3)

例二:

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
a.shape = (3, 2)
print(a)

輸出:

[[1 2]
 [3 4]
 [5 6]]

例三:
NumPy 也提供了reshape() 函數(shù)來調(diào)整數(shù)組維度。只是 reshape() 返回調(diào)整維度后的副本,而不改變原 ndarray

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.reshape(3, 2)
print(b)  # a 沒變

輸出:

[[1 2]
 [3 4]
 [5 6]]

2、ndarray.ndim

返回數(shù)組的維度(秩)。
例一:

import numpy as np

a = np.arange(24)
print(a.ndim)

# 現(xiàn)在調(diào)整其大小
b = a.reshape(2, 4, 3)
print(b.ndim)

輸出:

1
3

3、ndarray.flags

ndarray.flags 返回 ndarray 對象的內(nèi)存信息,包含以下屬性:

屬性 描述
C_CONTIGUOUS 數(shù)據(jù)是在一個單一的C風(fēng)格的連續(xù)段中
F_CONTIGUOUS 數(shù)據(jù)是在一個單一的Fortran風(fēng)格的連續(xù)段中
OWNDATA 數(shù)組擁有它所使用的內(nèi)存或從另一個對象中借用它
WRITEABLE 數(shù)據(jù)區(qū)域可以被寫入,將該值設(shè)置為 False,則數(shù)據(jù)為只讀
ALIGNED 數(shù)據(jù)和所有元素都適當(dāng)?shù)貙R到硬件上
WRITEBACKIFCOPY UPDATEIFCOPY 已棄用,由 WRITEBACKIFCOPY 取代;
UPDATEIFCOPY 這個數(shù)組是其它數(shù)組的一個副本,當(dāng)這個數(shù)組被釋放時,原數(shù)組的內(nèi)容將被更新
import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.flags)

輸出:

C_CONTIGUOUS : True
F_CONTIGUOUS : False
OWNDATA : True
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False

4、ndarray.real

import numpy as np

x = np.sqrt([1+0j, 0+1j])
print(x)
print(x.real)
print(x.real.dtype)

輸出:

[1.        +0.j         0.70710678+0.70710678j]
[1.         0.70710678]
float64

NumPy 中的常數(shù)

  • 正無窮:Inf = inf = infty = Infinity = PINF
  • 負(fù)無窮:NINF
  • 正零:PZERO
  • 負(fù)零:NZERO
  • 非數(shù)值:nan = NaN = NAN
  • 自然數(shù)e:e
  • π:pi
  • 伽馬:euler_gamma
  • None 的別名:newaxis

示例:

print(np.inf)
print(np.NINF)
print(np.PZERO)
print(np.NZERO)
print(np.nan)
print(np.e)
print(np.pi)
print(np.euler_gamma)
print(np.newaxis)

輸出:

inf
-inf
0.0
-0.0
nan
2.718281828459045
3.141592653589793
0.5772156649015329
None

NumPy 創(chuàng)建數(shù)組

1、numpy.empty

此方法用來創(chuàng)建一個指定維度(shape)、數(shù)據(jù)類型(dtype)的未初始化的數(shù)組。

numpy.empty(shape, dtype=float, order='C')
參數(shù) 描述
shape 一個表示數(shù)組維度的元組
dtype 數(shù)據(jù)類型
order 有 "C" 和 "F" 兩個選項(xiàng)

示例:

import numpy as np

x = np.empty([3, 2], dtype=int)
print(x)

輸出:

[[         0 1072693248]
 [         0 1072693248]
 [         0 1072693248]]

empty() 方法和 zeros() 方法不同,不會將數(shù)組值設(shè)置為零,因此可能會略微加快。另一方面,它要求用戶手動設(shè)置數(shù)組中的所有值,并應(yīng)謹(jǐn)慎使用。

2、numpy.zeros

創(chuàng)建指定維度,以 0 填充的新數(shù)組。

numpy.zeros(shape, dtype=float, order='C')

示例:

import numpy as np

x = np.zeros(5)
print(x)

輸出:

[0. 0. 0. 0. 0.]

注意:默認(rèn)是 float 類型的

3、numpy.ones

創(chuàng)建指定維度,以 1 填充的新數(shù)組。

numpy.ones(shape, dtype=float, order='C')

示例:

import numpy as np

x = np.ones(5)
print(x)

輸出:

[1. 1. 1. 1. 1.]

4、numpy.full

返回給定維度和類型的新數(shù)組,填充 fill_value。

numpy.full(shape, fill_value, dtype=None, order='C')
參數(shù) 描述
shape 返回數(shù)組的維度
fill_value 填充值
dtype 返回數(shù)組的數(shù)據(jù)類型,默認(rèn)值 None 指:np.array(fill_value).dtype
order 在計算機(jī)內(nèi)存中的存儲元素的順序,只支持 'C'(按行)、'F'(按列),默認(rèn) 'C'

示例:

import numpy as np

a = np.full((2, 3), 9)
print(a)

輸出:

[[9 9 9]
 [9 9 9]]

NumPy 從數(shù)值范圍創(chuàng)建數(shù)組

1、numpy.arange

該函數(shù)等效于 Python 內(nèi)置 range 函數(shù),但返回的是 ndarray 而不是列表。

arange([start,] stop[, step,], dtype=None)

[ ] 括起來的表示可選參數(shù)。

參數(shù) 描述
start 起始值,默認(rèn)為 0
stop 終止值(不包含)
step 步長,默認(rèn)為1
dtype 創(chuàng)建的 ndarray 的數(shù)據(jù)類型,如果沒有提供,則會使用輸入數(shù)據(jù)的類型。

示例:

import numpy as np

a = np.arange(5)
b = np.arange(10, 20, 2)
print(a)
print(b)

輸出:

[0 1 2 3 4]
[10 12 14 16 18]

2、numpy.linspace

創(chuàng)建一個一維等差數(shù)列的數(shù)組,與 arange 函數(shù)不同,arange 是固定步長,而 linspace 則是固定元素數(shù)量。

linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
參數(shù) 描述
start 序列的起始值
stop 序列的終止值,如果 endpoint 為 True,則該值包含于數(shù)列中
num 要生成的等步長的樣本數(shù)量,默認(rèn)為 50
endpoint 該值為 Ture 時,數(shù)列中中包含 stop 值,反之不包含,默認(rèn)是 True。
retstep 如果為 True 時,生成的數(shù)組中會顯示間距,反之不顯示。
dtype ndarray 的數(shù)據(jù)類型

例一:endpoint 參數(shù)的用法
我特意挑了下面這個除不盡的例子來顯示 endpoint 的效果。可以看到,endpoint=False 取值是 endpoint=True,并且 num = num + 1 的結(jié)果去掉終止值。這話有點(diǎn)拗口啊,對比一下下例中的 num 參數(shù)值及輸出結(jié)果就明白了。

import numpy as np

a = np.linspace(0, 5, 3, endpoint=False)
b = np.linspace(0, 5, 4, endpoint=True)

print(a)
print(b)

輸出:

[0.         1.66666667 3.33333333]
[0.         1.66666667 3.33333333 5.        ]

例二:retstep 參數(shù)的用法
返回一個元組,第一個元素是 numpy.ndarray,第二個元素是步長。

import numpy as np

a = np.linspace(0, 10, 5, retstep=True)
print(a)

輸出:

(array([ 0. ,  2.5,  5. ,  7.5, 10. ]), 2.5)

例三:dtype 參數(shù)
dtype 參數(shù)指定后會將結(jié)果強(qiáng)制轉(zhuǎn)換成 dtype 指定的類型,如果是 float 轉(zhuǎn) int,最終值就可能不是等差的了。

import numpy as np

a = np.linspace(0, 10, 5, dtype=int)
print(a)

輸出:

[ 0  2  5  7 10]

3、numpy.logspace

numpy.logspace 函數(shù)用于創(chuàng)建一個等比數(shù)列。

numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
參數(shù) 描述
start 序列的起始值為:base ** start (冪運(yùn)算)
stop 序列的終止值為:base ** stop。如果 endpoint 為 True,該值包含于數(shù)列中
num 要生成的等步長的樣本數(shù)量,默認(rèn)為50
endpoint 該值為 Ture 時,數(shù)列中中包含 stop 值,反之不包含,默認(rèn)是 True。
base 對數(shù) log 的底數(shù)。
dtype ndarray 的數(shù)據(jù)類型

示例:
其實(shí)沒啥好說的,主要是注意 start 參數(shù)的值并非是真正的起始值。

import numpy as np

a = np.logspace(1, 4, num=4)
print(a)

輸出:

[   10.   100.  1000. 10000.]

4、numpy.geomspace

創(chuàng)建一個一維等比數(shù)列。

numpy.geomspace(start, stop, num=50, endpoint=True, dtype=None, axis=0)
參數(shù) 描述
start 序列的起始值
stop 序列的終止值,如果 endpoint 為 True,該值包含于數(shù)列中
num 要生成的樣本數(shù)量,默認(rèn)為 50
endpoint 該值為 Ture 時,數(shù)列中中包含 stop 值,反之不包含,默認(rèn)是 True。
dtype ndarray 的數(shù)據(jù)類型
axis 1.16.0 版本中的新功能 ,沒看懂怎么用,官網(wǎng)上連個例子都沒有,值為 0 和 -1 的時候結(jié)果相同,其他時候都報錯。

示例:

import numpy as np

a = np.geomspace(1, 8, num=4)
print(a)

輸出:

[1. 2. 4. 8.]

NumPy 從已有的數(shù)組創(chuàng)建數(shù)組

1、numpy.asarray

numpy.asarray 類似 numpy.array,但 numpy.asarray 的參數(shù)只有三個。

numpy.asarray(a, dtype=None, order=None)
參數(shù) 描述
a 輸入數(shù)據(jù),可以轉(zhuǎn)換為數(shù)組的任何形式。 這包括列表,元組列表,元組,元組元組,列表元組和 ndarray。
dtype 數(shù)據(jù)類型
order 在計算機(jī)內(nèi)存中的存儲元素的順序,只支持 'C'(按行)、'F'(按列),默認(rèn) 'C'

示例:

import numpy as np

a = np.asarray([1, 2, 3])
print(a)

輸出:

[1 2 3]

2、numpy.frombuffer

numpy.frombuffer 用于實(shí)現(xiàn)動態(tài)數(shù)組。numpy.frombuffer 接受 buffer 輸入?yún)?shù),以流的形式讀入轉(zhuǎn)化成 ndarray 對象。

numpy.frombuffer(buffer, dtype=float, count=-1, offset=0)
參數(shù) 描述
buffer 實(shí)現(xiàn)了 __buffer__ 方法的對象,(絕對不是菜鳥教程上說的任意對象都可以)
dtype 返回數(shù)組的數(shù)據(jù)類型
count 讀取的數(shù)據(jù)數(shù)量,默認(rèn)為 -1,讀取所有數(shù)據(jù)。
offset 讀取的起始位置,默認(rèn)為 0。

例一:
buffer 是字符串的時候,Python3 默認(rèn) str 是 Unicode 類型,所以要轉(zhuǎn)成 bytestring 在原 str 前加上 b。

import numpy as np

a = np.frombuffer(b'Hello World', dtype='S1')
print(a)

輸出:

[b'H' b'e' b'l' b'l' b'o' b' ' b'W' b'o' b'r' b'l' b'd']

例二:
看了上面的例子,似乎對“實(shí)現(xiàn)動態(tài)數(shù)組”沒啥感覺,那么我們來看這個例子。

import numpy as np
import array

a = array.array('i', [1, 2, 3, 4])
print(a)

na = np.frombuffer(a, dtype=np.int_)
print(na)

a[0] = 10
print(a)
print(na)

輸出:

array('i', [1, 2, 3, 4])
[1 2 3 4]
array('i', [10, 2, 3, 4])
[10  2  3  4]

array.array 創(chuàng)建的數(shù)組對象內(nèi)存是連續(xù)的(這里不能用 list,會報:AttributeError: 'list' object has no attribute 'buffer'),numpy.frombufferarray.array 的內(nèi)存中創(chuàng)建數(shù)組,從上例中可以看出,改變 array.array 的值,numpy.frombuffer 的值也會跟著改變,由此可見。

例三:
array.array 數(shù)組中的值改變是可以的,但是如果是添加值,那就不行了。

import numpy as np
import array

a = array.array("i", [1, 2, 3, 4])
na = np.frombuffer(a, dtype=int)
print(na)

a.append(5)
print(na)

輸出:

[1 2 3 4]
[140896288       381         3         4]

3、numpy.fromiter

numpy.fromiter 方法從可迭代對象中建立 ndarray 對象,返回一維數(shù)組。

numpy.fromiter(iterable, dtype, count=-1)
參數(shù) 描述
iterable 可迭代對象
dtype 返回數(shù)組的數(shù)據(jù)類型
count 讀取的數(shù)據(jù)數(shù)量,默認(rèn)為 -1,讀取所有數(shù)據(jù)

例一:

import numpy as np

iterable = (x * x for x in range(5))
a = np.fromiter(iterable, int)
print(a)

輸出:

[ 0  1  4  9 16]

看起來有點(diǎn)像 numpy.arrayarray 方法需要傳入的是一個 list,而 fromiter 可以傳入可迭代對象。

例二:
將上例換成 array 試試看。

import numpy as np

iterable = (x * x for x in range(5))
a = np.array(iterable)
print(a)

輸出:

<generator object <genexpr> at 0x000000001442DD00>

4、empty_like

返回一個與給定數(shù)組具有相同維度和類型的未初始化的新數(shù)組。

numpy.empty_like(prototype, dtype=None, order='K', subok=True)
參數(shù) 描述
prototype 給定的數(shù)組
dtype 覆蓋結(jié)果的數(shù)據(jù)類型,版本1.6.0中的新功能。
order 指定陣列的內(nèi)存布局。C(按行)、F(按列)、A(原順序)、K(元素在內(nèi)存中的出現(xiàn)順序)
subok 默認(rèn)情況下,返回的數(shù)組被強(qiáng)制為基類數(shù)組。 如果為 True,則返回子類。

示例:

import numpy as np
a = np.empty_like([[1, 2, 3], [4, 5, 6]])
print(a)

輸出:*

[[870   0   0]
 [  0   0   0]]

5、zeros_like

numpy.zeros_like(a, dtype=None, order='K', subok=True)

參數(shù)同上。

示例:

import numpy as np
a = np.zeros_like([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
print(a)

輸出:*

[[0. 0. 0.]
 [0. 0. 0.]]

6、ones_like

numpy.ones_like(a, dtype=None, order='K', subok=True)

參數(shù)同上。

示例:

import numpy as np
a = np.ones_like([[1, 2, 3], [4, 5, 6]])
print(a)

輸出:*

[[1 1 1]
 [1 1 1]]

7、numpy.full_like

返回與給定數(shù)組具有相同維度和類型的并以 fill_value 填充的數(shù)組。

numpy.full_like(a, fill_value, dtype=None, order='K', subok=True)
參數(shù) 描述
a 給定的數(shù)組
fill_value 填充值
dtype 返回數(shù)組的數(shù)據(jù)類型,默認(rèn)值 None,則使用給定數(shù)組的類型
order 指定陣列的內(nèi)存布局。C(按行)、F(按列)、A(原順序)、K(元素在內(nèi)存中的出現(xiàn)順序)
subok 默認(rèn)情況下,返回的數(shù)組被強(qiáng)制為基類數(shù)組。 如果為 True,則返回子類。

zeros_like、ones_like 其實(shí)都是此方法的特例。

示例:

import numpy as np

x = np.arange(6, dtype=int)
print(x)
print('-------------------')
a = np.full_like(x, 1)
b = np.full_like(x, 0.1)
c = np.full_like(x, 0.1, dtype=np.double)

print(a)
print(b)
print(c)

輸出:

[0 1 2 3 4 5]
-------------------
[1 1 1 1 1 1]
[0 0 0 0 0 0]
[0.1 0.1 0.1 0.1 0.1 0.1]

掃碼關(guān)注我的個人公眾號
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,117評論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,860評論 3 423
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,128評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,291評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,025評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,421評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,477評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,642評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,177評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,970評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,157評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,717評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,410評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,821評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,053評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,896評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,157評論 2 375

推薦閱讀更多精彩內(nèi)容